• Почему не происходит запись в таблицу во время save() в django?

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

    payment_to_parent = CompanyToClientPayment.objects.create(client=parent, total=prices[line - 1], use_date=date.today())


    Не очень понимаю, почему у вас save() принимает параметр newbie. Вы переопределяете функцию, которая определена в models.Model (или в MPTTModel). Сигнатуры не должны противоречить.

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

    Встречал такую проблему на MySQL. В ходе резервного копирования довольно большой базы (неархивированный SQL занимал сотни мегабайт) нормальная работа с ней становилась невозможна. Обошли с помощью Percona Xtrabackup, во время работы которой нагрузка не заметна совсем.

    Судя по первой же ссылке в гугле, она поддерживает MariaDB.
    Ответ написан
  • Как правильно сформулировать исключение?

    Может, не стоит превращать вводимое число в int. Пусть будет строка. Можно тогда написать s.endswith('11').
    Ответ написан
  • Как вытащить наибольшее значение?

    Сортировка строк ведь лексикографическая. Так получается?

    SELECT MAX(имя_столбца) FROM имя_таблицы;
    Ответ написан
    Комментировать
  • Как и где презентовать проект c открытым исходным кодом?

    На Хабрахабре, вероятно? Наиболее развитое русскоязычное IT-сообщество. Ну и репозиторий кода на GitHub.
    Ответ написан
    Комментировать
  • При создании через objects.create() вылетает IntegrityError. Как исправить?

    Выглядит странно. Есть ли в таблице Foo какие-то объекты? Что если удалить таблицу и создать снова? Какая СУБД?
    Ответ написан
  • Куда катится программирование?

    Всё очевидно же. Человеки не нужны, нам нужно больше роботов :)

    На самом деле, ваш вопрос гораздо шире собственно программирования. Что будут делать люди, когда роботы станут изготавливать пищу, одежду, жильё и всё более совершенные копии самих себя; когда автомобили и самолёты будут передвигаться вполне самостоятельно; когда, таким образом, большая часть человеческих профессий исчезнет по причине того, что роботы выполняют человеческую работу дешевле и качественней.

    Думаю, что программирование как раз вне зоны риска: оно никуда не денется ближайшие полвека точно. Несмотря на описанный вами прогресс, большинство ныне создаваемых программ довольно глупы и прямолинейны; они лишены малейшей гибкости и способности реагировать на нестандартные, не предусмотренные разработчиками ситуации. Если сравнить их с живыми существами, - уровень приспособляемости, наверняка, куда ниже самой примитивной бактерии. Может быть, на уровне бактериофага.

    Когда мы будем массово и просто создавать программы столь же умные, как средний домашний кот? Желательно, со столь же симпатичной мордой.

    Пока что умных программ мало и средний программист такие не пишет.

    Наслоение абстракций в современных программных системах приводит к тому, что мы не используем возможности наших вычислительных устройств на полную катушку. Мощности современного смартфона, может быть, хватило бы, чтоб его использовать как мозги для Терминатора; а в нём браузер тормозит. Абстракции, конечно, необходимы, но мы в большинстве случаев не умеем строить их так, чтобы не платить за это столь большую цену в производительности (привет, Python).

    Как результат всего вышесказанного, степень автоматизации в нашей реальности пока что оставляет желать много, много лучшего. См. бюджеты внедрения ERP-систем для автоматизации предприятий: это семизначные суммы и, если не ошибаюсь, порядка 80% провальных проектов.

    Короче говоря, на век нашего поколения работы хватит точно. Ну а дальше? А там, глядишь, физики доберутся до аппаратной реализации первых полноценных квантовых компьютеров; и вперёд: совершенно новые парадигмы, новые языки, новые методы обработки информации.
    Ответ написан
  • Поможете сформировать правильно структуру БД?

    Не понимаю, должен признаться... Пусть есть таблицы User и Page, сохраняем для каждого пользователя список страниц, которые он уже видел. Сделаем таблицу View с колонками:

    • user - id пользователя,
    • page - id страницы,
    • time - время просмотра.


    Чтобы просмотреть миллион страниц из расчёта секунда на страницу пользователю потребуется 1000000/3600 = 277.77 часов = 11.5 суток непрерывного просмотра = 34.7 суток просмотра из расчёта 8 часов в день, 7 дней в неделю. Не видел случаев, когда такое нужно, ну да ладно; вам виднее. Ну и пусть в этой таблице будут миллионы записей, и что? Вы можете использовать partitioning, - MySQL его поддерживает.

    Что касается выборки очередной страницы для просмотра: зачем вам загружать это всё в память? Это делается средствами SQL (если выборка страницы действительно случайна).

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

    Коли приводите конфиг nginx - значит, статические файлы не работают в production, а не в родном django-сервере. Попробуйте добавить слэш в конец пути:

    location /static/ {
        alias /home/projects/testproject/static/;
    }


    Смутно помнится, что этот слэш имеет значение.

    P. S. Используйте, пожалуйста, тег code для оформления кода. Гораздо удобнее было бы читать.
    Ответ написан
  • Пософетуйте софт для моделирования бизнес-процессов?

    Смотря что вы понимаете под моделированием: рисование процессов (modeling) или выполнение их как имитационной модели (simulation).

    1. Для имитационного моделирования используется упомянутый AnyLogic;
    2. Для рисования процессов в нотации BPMN много инструментов, но мне более всего нравится BizAgi. Он бесплатен, очень прост и удобен в использовании, диаграммы получаются красивые. Есть даже зачаточные способности к имитационному моделированию.
    Ответ написан
    Комментировать
  • Как настроить обновление записей в django по расписанию?

    Существует минимум два варианта.

    1. Создаёте management command, которая выполняет нужное действие. Пусть вы её назвали process. При запуске она должна запросом выбирать все модели, для которых уже наступило время выполнять bar(), и обрабатывает их. Затем настраиваете запуск этой команды в cron.
    2. Либо настраиваете Celery, который тоже умеет выполнять задания по расписанию.


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

    У вас в любом случае будут определённые затраты времени, без них никуда не деться. Возможно, вам поможет представление строки в виде потока (StringIO) и итеративная её обработка.

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

    Классический учебник - это книга Кернигана и Ритчи "Язык программирования C".
    Ответ написан
  • Какие посоветуете книги по олимпиадному програмированию для начинающих веб-разработчиков?

    Вы хотите участвовать в олимпиадах? Если так, то вряд ли там будет возможность использовать JavaScript. Кроме того, в олимпиадах много математики, для этого JavaScript подходит плохо. Хотя бы потому, что в нём неудобные (IMHO) массивы.

    Ну и потом, коли вы начинающий разработчик, почему так ограничиваете себя единственным языком? Изучайте новые языки, развивайтесь, расширяйте кругозор. Если C++ пугает, займитесь Python, он много проще. И инструментарий для математики есть, и на современных олимпиадах разрешают его использовать. Он вам и для веба пригодится, не вечно же вам callback-и городить. :)
    Ответ написан
  • Как сделать кастомный list_display в админке django?

    По-моему, у вас одному экземпляру Library может соответствовать более одного экземпляра Book? Почему тогда написано "книга", а не "книги"?

    У всякого экземпляра Library есть свойство book_set, которое содержит список всех книг, соответствующих данному объекту. Можно переименовать его, указав related_name:

    material = models.ForeignKey(Library, related_name='books')


    Теперь вы можете вывести список книг так:

    class LibraryAdmin(admin.ModelAdmin):
        list_display = ('id', 'title', 'book_list', )
    
        def book_list(self, obj):
            return ', '.join(book.name for book in self.books)


    Или у вас одна библиотека соответствует только одной книге, и наоборот?
    Ответ написан
  • Как найти совпадение в списке python?

    Как это можно сделать без перебора? Ведь в каком-то виде, пусть и неявном, перебор всё равно будет иметь место. Вот такой, например:

    lst = [[1,2,3],[2,4,3],[5,2,1],[1,2,7]]
    prefix = [1, 2]
    
    def search(lst, prefix):
        l = len(prefix)
        for item in lst:
            if item[:l] == prefix:
                yield item
    
    print list(search(lst, prefix)))


    Или такой:
    length = len(prefix)
    results = [item for item in lst if item[:length] == prefix]
    Ответ написан
    Комментировать
  • Как в django в ChangeForm отображать значения полей readonly?

    Не трогайте форму. Вы можете переопределить метод get_readonly_fields в admin-классе. Представляется, что это может выглядеть так:

    class CashPaymentAdmin(admin.ModelAdmin):
        # ...
        def get_readonly_fields(self, request, obj=None):
            if obj:
                return ['total', 'date', 'client', 'payment_id']
    Ответ написан
  • Каким образом направить определенный URL, на определенную директорию?

    В Django существует специальный class-based view для отдачи статических файлов во время разработки. Вот пример для Django 1.6.

    from django.conf.urls import patterns, include, url
    from django.conf import settings
    
    urlpatterns = patterns('',
        # Здесь ваши URL
    )
    
    # А это работает только с Django development server, чтобы не было соблазна
    # использовать в production
    if settings.DEBUG:
        urlpatterns += patterns('',
            url(r'^js/(?P<path>.*)$', 'django.views.static.serve', {
                'document_root': 'папка-где-лежат-файлы-js',
            }),
            url(r'^css/(?P<path>.*)$', 'django.views.static.serve', {
                'document_root': 'папка-где-лежат-файлы-css',
            }),
       )


    Как уже было отмечено, в production это использовать нельзя, работать будет очень и очень медленно. Конкретный способ настройки зависит от того, как вы вообще развёртываете Django. Если это делается под nginx, будет как-то так:

    Location /css/ {
        alias /var/www/css/;
    }


    Гуглите по директивам alias и root.
    Ответ написан
    Комментировать
  • Гуманитарное (психологическое) образование для человека технического склада ума?

    Гуманитарного образования нет, да и вообще в этой сфере мало что понимаю и судить не могу, но позвольте обратить внимание на один момент. Кажется, что психофизиология ближе к нейрофизиологии, нежели к гуманитарной схоластике. Может быть, вам интересны как раз науки, изучающие мозг? Рефлексы, координация движений, механизмы органов чувств, памяти, когнитивные способности, как венец всего - сознание, - всё это ведь тоже самопознание.
    - Это естественные науки, в которых есть принцип "эксперимент - критерий истины".
    - Исследования и модели в этой области немыслимы без компьютеров. У вас получится синергетический эффект: моделируя биологические нейронные процессы, вы также будете углублять свои познания в технической сфере.
    - Сейчас в этой области наблюдается определённый бум.
    - С появлением и развитием недорогих нейрокомпьютерных интерфейсов исследования начального уровня можно проводить даже в домашних условиях, без доступа к большим энцефалографам.
    Ответ написан
    Комментировать
  • Нужно ли начинать изучение программированию с книг, а не с ЯП?

    Я тут посмотрел другие ваши вопросы. Они все связаны с одной и той же темой: в каком направлении начать изучение программирования, да в какой последовательности, да какой язык выбрать.

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

    С моей точки зрения, вам стоит прямо сейчас, без дальнейших сомнений, взять какой-нибудь несложный язык программирования, - пусть Python, - и приняться за работу. Выберите себе какой-нибудь проект, который вам интересно было бы сделать. Да хоть возьмите задачки из "Конкретной математики", если она вам так нравится. Там уже в первой главе есть. И пишите, пишите, пишите код.

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

    Если знаете английский - есть видеокурсы по программированию на Python на Coursera, Udacity, codecademy, где там ещё, - много их. Если не знаете - есть переведённый на русский учебник за авторством Лутца. Но английский, вообще говоря, знать надо.

    Теперь, что касается фундаментальных книг. Я сам читал "Конкретную математику", но продвинулся недалеко. Считаю, что у человека должен быть стимул и интерес изучать вещи; тогда лишь их изучение будет плодотворным. В обратном случае, даже если вы заучите что-то, мозг выбрасывает ненужную информацию.

    Пишите код и много. Когда вы почувствуете, что не хватает знаний о красно-чёрных деревьях - возьмёте Кнута и прочтёте. Надоест динамическая типизация в Питоне - пойдёте штудировать C/C++. Захотите писать под микроконтроллёры - выучите ассемблер.

    Короче говоря, не бойтесь начать.
    Ответ написан