• Что такое model.Models в Python/Django?

    @kazmiruk
    если мы делаем так
    from django.db.model import Model
    то пишем
    class MyModel(Model):
    ....
    если
    from django.db import model
    то так
    class MyModel(model.Model):
    ....
    Ответ написан
    Комментировать
  • Что лучше pymorphy2 vs phpMorphy для обработки русских слов?

    @kazmiruk
    Я бы взял pymorphy (я даже не выбирал в принципе, так как php не приемлю, но не суть), так как phpmorphy не поддерживается больше разработчиком (последнее изменение 4 года назад) и Вы останетесь со всеми вопросами и багами один на один.
    Какой инструмент имеет круче предсказатель - накатайте тестик по формированию частотных отношений лемм и натравите на хабр, к примеру. А потом смотрите на результат (думаю он не будет отличаться даже) На pymorphy это примерно 20 строк кода. На phpmorphy думаю не многим больше. Результат работы pymorphy по определению части речи и выдергивания лемм меня более чем удовлетворил.
    По скорости - разработчик pymorphy заявляет, что одной из задач для него была оптимизация, поэтому есть шанс, что работать будет быстрее.
    Ответ написан
    Комментировать
  • Чат на Node.js. Какую БД использовать?

    @kazmiruk
    Собственно смущает только как она справится с объемом данных.

    И вот решил в целях самообразования сделать чат


    Что-то Вы темните )
    А по сабжу - в целях самообразования возьмите монгу. Узнаете что это такое и как это работает. Для поставленной задачи она вполне подходит (как и все остальные СУБД, в принципе)
    Ответ написан
  • Django 1.9 Flatpages, как настроить URLS?

    @kazmiruk
    Добавьте перед urlpatterns
    from django.conf.urls import include
    Ответ написан
    3 комментария
  • Как добавлять нижнее подчеркивание к имени файлу до тех пор пока не окажется, что файл не существует?

    @kazmiruk
    import os
    
    fn = "1.txt"
    
    while os.path.exists(fn):
        fn = fn.split('.')
        fn = "".join(fn[:-1]) + "_."  + fn[-1]
    Ответ написан
    Комментировать
  • Как уехать работать в силиконовую долину?

    @kazmiruk
    2 года назад Вы спрашивали про требования для junior. Отсюда можно сделать вывод, что Вы максимум middle сейчас. h1b сделана для ценных специалистов, которые незаменимы в США. Вы таковым не являетесь пока (не может быть middle незаменимым). Мало того выше Вам правильно описали условия. Вас не включат в квоту, если у Вас нет профильного образования или 2хN лет профильного опыта работы (N - количество лет обучения в ВУЗе, по поводу коэффициента 2 - точно уже не помню, может и больше значение). Не хочу обидеть, но не нужно такого специалиста тащить через весь мир никому, так как дорого это и бессмысленно. Вместо Вас дешевле нанять фрилансера или человека на месте.
    Но, опять же судя по ответам выше, Вы упорно верите в то, что можно добиться всего. Насколько я понимаю - Ваша цель уехать в США, а не много зарабатывать (так как много зарабатывать можно и в России, и в Камбодже при желании). Соответственно единственный нормальный вариант для Вас - искать бодишопы. Они готовы тащить кого угодно в США (платят взятки, чтобы протолкнуть в квоту даже), но за это Вы попадаете к ним в рабство на неопределенный срок - часть Вашей зп уходит к ним (и эта часть довольно приличная). Также они обычно тешат тем, что через годик другой сделают гринкарту (но не верьте, не сделают :)) и до этого момента Вы не можете их покинуть (так как кроме возмещения их трат Ваша h1b сразу включает обратный отсчет на 1 месяц, чтобы найти нового работодателя, а процесс получения гринкарты сбрасывается (Вы ведь действительно верите, что этот процес начат)). В любом случае таким путем Вы попадете в США с h1b и сможете устроиться в SLV, правда официальным работодателем будет являться бодишоп, так как Вы его раб.
    Вот Вам реальный опыт. Все таки дружеский совет - не ставьте переезд самоцелью. Если Ваша цель будет "стать великолепным специалистом", то через несколько лет Вы будете уже выбирать в какую страну поехать листая предложения от работодателей.
    Ответ написан
    Комментировать
  • Какой у меня уровень django разработчика?

    @kazmiruk
    Я бы сказал, что нет. Из того, что бросилось при беглом просмотре кода - абсолютные пути в settings, несоблюдение pep8 (завершаюший отступ, длина строк. Я сам не считаю, что 80 символов это нормальное значение, но строка в 146 символов это слишком много, хотя бы 120). Нет ни одного теста, импорты выполнены в перемешку, каждый метод модели с декоратором property (не очень вникал в код, может и имеет смысл, но в таком количестве вряд ли), не используете CBV, хотя кое где это уместней, не понятно смысл создания целого аппа ради хранения одной функции в 1 строчку кода, есть явное непонимание того что и где содержится (Profile.objects.create(user=User.objects.get(id=request.user.id)), User.objects.get(id=request.user.id)), не понимание что какие запросы делают (sum([x.total for x in request.user.outlays.filter(type=2)])). Также не увидел нигде индексов, возможно они действительно и не нужны (по коду в основном везде выборки по PK и FK вроде). Нет try\catch для get блока хотя кое-где может плюнуть DoesNotExists (kwargs['inviter'] = User.objects.get(id=data['inviter']))
    В общем много косяков.
    А вообще, по такому коду трудно судить какого Вы уровня, так как в принципе ничего специфичного там нет, даже не знающий джангу напишет такое погуглив пару дней\часов.
    Советую Вам ознакомиться с pep8 подробней + установить себе pep8 и\или pylint, прочитать хотя бы two scoops of django, попрактиковать написание тестов, изучить selenium. Без обид, но пока я бы Вас не взяли на миддла, так как много бы пришлось объяснять и менять за Вами.
    Ответ написан
    1 комментарий
  • Какое filestorage решение выбрать?

    @kazmiruk
    Поднимите WebDAV. В качестве api к WebDAV - запросы через curl (хотя какой-нибудь велосепедостроитель обязательно написал уже обертку, это ведь php).
    Ответ написан
    Комментировать
  • Связь кадровой частоты и частоты развертки или бывает ли больше 60 fps?

    @kazmiruk
    Вообще не очень шарю в этом деле, но как минимум есть мониторы с поддержкой 3D, который выдают 120 Гц и более (это к Вашему ответу на комментарий). А в качестве аргументов - человеческий мозг обрабатывает информацию от глаз в среднем за 13 мс (нагуглил в первой попавшейся статье), что дает нам примерно 77 кадров в секунду. Соотвественно, разницу между 60 и 77 FPS при мониторе с частотой 120 Гц человек должен заметить. Но по своему опыту скажу, что разницу между 40 и 60 FPS я уже не замечаю. Если картинка не тормозит, то для меня она одинаково хороша и в 40 FPS и в 1000. Хотя отдельные личности видят как перед глазами перерисовываются кадры, если FPS ниже 60.
    Ответ написан
    Комментировать
  • Django: Как очистить форму после запроса?

    @kazmiruk
    return HttpResponseRedirect(request.path) в конце выполнения обработки формы.
    Ответ написан
  • Проблема с Google Chrome и javaScript, если прятать блок с помощью скрипта, то на долю секунды он все же успевает появиться, есть ли решение?

    @kazmiruk
    Вместо условия скрытия сделайте условие отображения, а блоку изначально display:none ставьте, к примеру
    Ответ написан
    Комментировать
  • Тенденция к перехвату проектов/клиентов сотрудниками с последующим увольнением. Что делать?

    @kazmiruk
    По скользкому пути идете. Несколько лет назад работал в небольшом стартапе. Стартап начал приносить деньги, начали его развивать. А в один момент начальство укусил петух в жопу: наш проект могу украсть!!! Началось с малого - слежение за трафиком, максимальное ограничение прав и анализ логов. Затем кейлоггеры начали появляться, затем установили камеры видеонаблюдения, затем мы нашли диактофон, который включался на запись, когда начальство уходило куда-то. Потом сбрендили и вообще в обязательном порядке начальство стало находиться в одном кабинете с нами и сидеть в такой позиции, чтобы видеть чем кто занимается. Как итог - через 6 месяцев такой работы вся команда свинтила кто куда при том, что условия были очень даже ничего по з\п и графику. Поэтому стоит прислушаться к советам, которые уже дали - стоит искать проблему в себе и стараться привлекать сотрудников, а не отталкивать помещая их в жесткие рамки. Программисты делают Ваш проект. Без них Ваш проект ничего не стоит (собственно Ваш вопрос об этом и говорит - достаточно им унести идею и Вы в панике). Поэтому сделайте так, чтобы они не захотели уходить.
    Ответ написан
    8 комментариев
  • Как решать подобные задачи (поиск максимальной прибыли)?

    @kazmiruk
    Помнится в универе нас гоняли подобными задачами. Предмер теория игр, тема максимальные и минимальные стратегии
    Ответ написан
  • Как программисту получить опыт разговорного английского?

    @kazmiruk
    Вы плохо ищите. В более-менее крупном городе найти нейтивспикера на английском не проблема. Я в своей провинции нашел перуанца, с которым успешно качаю испанский. Английских же как грязи. Посмотрите у себя в городе, но у нас, например, очень популярны стали последнее время так называемые английские клубы. По сути тупо раз в неделю собираются в кафешке, присутствует один-два нейтивспикера от какой-нибудь школы. Весь разговор только на английском (начиная от заказа и заканчиваю разговорами за жизнь). Часто проводят тематические встречи - рассказы про жизнь в разных странах и т. п. Пару раз ходил туда, очень полезная штука на первом этапе.
    Ответ написан
    Комментировать
  • Каков ответ логической задачи?

    @kazmiruk
    Задача вполне банальна для собеседований (спрашивали аналогичное в Яндексе пару лет назад, только про стакан и размножающиеся бактерии, но сути не меняет). Ошибка в постановке задачи. Если бы в самом вопросе четко звучало, что каждый день количество бумаги увеличивается вдвое, то вполне логичен ответ, что половина будет на n-1 день, так как количество бумаг в последний день N равно x, а в предпоследний x/2 (чтобы при увеличении вдвое получилось x).
    Ответ написан
    2 комментария
  • Из словаря список списков в Python 3?

    @kazmiruk
    def x():
    	keys = a.keys()
    	for i in xrange(0, len(keys), 2):
    		yield keys[i:i + 2]
    
    print list(x())


    Только учтите, что словарь не сохраняет порядок записей, поэтому ключи могут быть сгруппированы как попало.
    Ответ написан
  • Как работать с многоядерными процессорами в Python?

    @kazmiruk
    https://docs.python.org/2/library/multiprocessing.html - единственный известный мне способ утилизровать несколько ядер на питоне. GIL есть в обоих ветках питона, обойти никак (вроде, если я не ошибаюсь, написав экстеншн на С, Вы все равно будете вынуждены запускать его в тех же условиях).
    Ответ написан
    2 комментария
  • Как реализовать Iterator для собственного List?

    @kazmiruk
    Да, вам нужно реализовать класс от Iterator и возвращать экземпляр этого класса в iterator методе. Если не хочется заморачиваться, то можете в Вашем List сразу имплементировать Iterator, соответственно в iterator() возвращать this ну и сразу добавить в нем методы next, hasNext. Таким образом у Вас вся логика будет сокрыта в одном классе, но объект будет одновременно и итерируемым, и итератором, что не очень хорошо в моем представлении.
    Ответ написан
    Комментировать
  • Как правильно писать комментарии для контроля версий(git, bitbucket)?

    @kazmiruk
    Я всегда делаю так:
    - по фичи\багу\рефакторингу завожу таск, в котором описываю задачу;
    - создаю ветку, делаю все, что нужно;
    - каждый коммит сопровождаю следующим refs #< task_id >: <краткое описание внесенных изменений> (если в коммите вдруг поднялась рука затронуть несколько тасков, то refs #< task_id >, #< task_id >, но лучше так не делать);
    - когда фича готова вливаю ее в основную ветку с сохранением истории коммитов;
    - вношу изменения в таск трекере - описываю решение (что изменилось, что сделал, как сделал), закрываю таск.

    Так я поступаю даже когда работаю один. Потом легко по номеру таска просматривать историю, узнавать к какому таску относились данные изменения и история не перегружена длинными историями "как я провел лето". Ну и бонус: таск трекеры умеют собирать информацию сформированную в некотором стандартизированном виде.
    Ответ написан
    5 комментариев