Imposeren
0
Согласен с MikeVL: для хоть какого-то приближения к реальным юзкейсам нужно при чтении всего дерева использовать «одинаковые» сортировки для всех 3х вариантов, а сейчас у вас:
1. для mptt и ltree сортировки вроде бы похожие и в основном идут «в глубину»
2. для raw у вас порядок будет совсем другой: сначала верхние узлы все деревьев, а потом вообще бардак – если при «упорядоченном» создании еще можно описать в каком порядке это всё идёт, то после того как вы поперемещаете деревья между родителям – начнётся полный бардак

Думаю вам нужно подумать над тем, чтобы для Raw сделать сортировку хотя бы похожей на порядок в mptt и ltree. Например получить все узлы без родителей, а потом для них вызывать get_descendants, но этоу уже явно не один запрос. Но и в этом случае ничто не гарантирует, что для Raw модели сохранится какой-либо адекватный порядок

И еще замечания:
1. в реальных ситуациях, когда данных много — вы не будете использовать list(QS), т.к. при таком подходе вы рискуете бесполезно использовать всю доступную память. Скорее в таких случаях вы бутете использовать iterator, или будете считывать небольшими порциями. (http://blog.etianen.com/blog/2013/06/08/django-querysets/). Мне кажется для чтения всего дерева правильнее было бы использовать подобный подход. А для отдельных узлов – вариант с list(QS) – ок
2. Методы которыми вы выбираете случайный узел каждый раз считывают всю таблицу – мне кажется это будет как-то влиять на поведение постгреса, но не уверен
3. в методе move_node_time, конечную точку вы выбираете случайно, без каких-либо проверок. Из-за этого вполне возможна ситуация, когда вы будете перемещать узел к одному из своих потомков – не особо понимаю как текущая логика Ltree.move_to справится с этим
4. Мне кажется, что после «перемешиваний», с помощью перемещений, после вставок узлов в случайные места ситуация может поменяться. И при этом, как по мне, такой набор данных будет ближе к «настоящим», но это уже спорный вопрос
Imposeren
0
Тут еще стоит учесть, что «формально согласно документов/свидетельств». Однако если будет доказано, что свидетельства и документы ложны, то значение для «формально» поменяется. Или нет?
Imposeren
0
Можно предположить что если сервер/клиент занимаются интерполяциями, то большой пинг в «правильные» моменты вполне может быть преимуществом, т.к. «мозгом» становится тоже проще интерполировать. Можно даже чит написать который будет по хоткею какой-то неведомой магией пытаться поднять пинг на 100-200мс.

Это все чисто предположения, но да: по хорошему нужен судья который будет не только откатывать/интерполировать, но и учитывать текущие пинги обоих игроков
Imposeren
0
А как там прогресс со спрятанным инструментом mesh gradient? Есть какое-то продвижение, исправление багов, «живое» добавление новых узлов и т.п.?
Imposeren
0
случайный двойной комент. del.
Imposeren
+3
также стоит упомянуть regex, в котором '\w' работает не только для латиницы:

>>> re.findall(u'\w', u'привет')
[]
>>> regex.findall(u'\w', u'привет')
[u'\u043f', u'\u0440', u'\u0438', u'\u0432', u'\u0435', u'\u0442']



Плюс поддерживаются категории юникода:
>>> regex.findall(u'\p{Punctuation}', u'привет, человек')
[u',']


Плюс еще куча всяких плюшек, например:
[\p{N}--[0-9]] # Set containing all numbers except ‘0’… ‘9’
[\p{ASCII}&&\p{Letter}] # Set containing all characters which are ASCII and letter
Imposeren
0
> The squashmigrations command now supports specifying the starting migration from which migrations will be squashed.
> Date and time lookups can be chained with other lookups (such as exact, gt, lt, etc.). For example: Entry.objects.filter(pub_date__month__gt=6).

и вот этого тоже очень не хватало.
Imposeren
0
Я бы еще упомянул Geographic Database Functions. С ними теперь можно отказаться от GeoManager
Imposeren
+2
Да, когда последний раз им пользовался через двойной ssh туннель, то всё постоянно падало при первом удобном случае )=
Imposeren
0
Ну английский не единственный язык который использует латиницу. Можно использовать и более привычные большинству А, Бэ, Цэ, Дэ:
Латинский алфавит

g — же
h — аш
i — и
j -йот/жи
n — эн
p — пэ
q — ку
s — эс
u — у
y — игрек/ипсилон
Imposeren
+11
Кстати и топовые ответы не всегда являются самыми лучшими. Бывает что есть «более правильный» ответ, который оставили значительно позже топового, и он естественно в топ либо выйдет не скоро, либо не выйдет вообще
Imposeren
0
что же выбрать для интеграции с проектом на django. Я вот недавно искал и наткнулся на swampdragon, а тут вот еще одна новая подобная штука вылезла. Вот бы сравнил кто и показал примеры интеграции. Задача простая — много разных «чатиков» завязанных на конкретные записи в БД определенных таблиц (и используемых через модели django)
Imposeren
0
В следующем миллиарде предпирнимателей США будет 50±10 процентов женщин!
В следующем миллиарде предпирнимателей США будет 12.2±5 процентов афро-американцев!
В следующем миллиарде предпирнимателей США будет 4.7±2 процентf «азиато-американцев»!

по мотивам переписи
Imposeren
–2
а он разве под капотом не cairo использует? Если использует, тогда для серверов лучше брать cairosvg например, или вообще пользоваться обертками над cairo для нужных вам ЯП
Imposeren
+1
Прошу прощения, но у вас постоянно этот «тикл». Это Tcl что ли?
Imposeren
+1
Автор уже коментировал что-то подобное тут. Если я правильно понял, то раньше они дошли до ситуации, когда стандартного питона им уже не хватало, а переписывать на что-то другое было нецелесообразно, и pypy был перспективный, но сырой, так-что они сделали свой python
Imposeren
+1
Намёк, что SEMAT, как и BPMN хорошо вписываются в xkcd: Standards?
Imposeren
0
толи автокад, то ли 3д-макс, то ли еще что-то дорогое и масштабное, ставят такие себе «хелп-серверы» отдающие справочную информацию по http на каком-нибудь нестандартном локальном порту. И кто знает — может иногда оно не только локально работает
Imposeren
+1
мы делаем так: удаляем всё что можно. Если после этого в базе есть что-то, что сократилось до такого же состояния, то в обоих адресах добавляем тип объекта. Если не помогло, удаляем типы, добавляем родителя, если опять не помогло (бывают одинаковые районы в разных субъектах), то добавляем субъект. Типы и родители могут комбинироваться до получения уникального текста. Тоже самое с улицами/проспектами: если в городе есть только улица с таким названием, то вполне можно удалить тип. Если и улицы и бульвары/проспекты, то тип указан у всех
Imposeren
0
А почему не захотели форкнуть django-postoffice и доработать? Там многое было уже готово
Imposeren
0
половина экранного пикселя — не бывает.

стоит уточнить, что если известен порядок субпикселей, то вполне бывает 1/3 и 2/3 экранного пикселя. Для некоторых дисплеев также бывает и 1/4 экранного пикселя.
Imposeren
+1
прошел штук 10 лабиринтов. Неприятно что больше 80% нажатий кнопок это «вправо» и «вниз». т.е. все лабиринты весьма простые
Imposeren
+1
если верить этому:
arewewebyet.com/

то для веба он пока вообще не годится
Imposeren
+1
а еще *.egg, *.egg-info, *.sublime-*, dist
Imposeren
+10
Теперь можно строить сразу 7 веток метро!
Imposeren
0
> необходимую для их получения (по всей видимости, имеются в виду ссылки на вебсайты третьих сторон)
а это просто защита от тех, кто говорит что торренты это не сами фильмы, а просто информация о фильме — посмотрели западные судебные процессы.
Комментарий из публикации, перенесённой в черновики.
Imposeren
0
ну про 2000-2013 написано и в статье. Я посмотрел данные за последние 6 лет — тут уже высаживают больше чем вырубают
Imposeren
+1
В Украине за 2007-2013 вроде норм показатели:
-343 тыс., + 347 тыс.

Тенденция хорошая.
Imposeren
–1
Ну мне кажется что для панорам лучше всё же использовать специализированные программы, например hugin
Imposeren
+1
а я надеялся на что-то вроде такого:
azarask.in/projects/algorithm-ink/#c1ffcc88
azarask.in/projects/algorithm-ink/#1f4517fb
Imposeren
+4
Подозреваю, что Bazanra недоволен тем что расчеты чисел Фиббоначи и квадратов не получится всунуть в 8 бит.
Imposeren
0
ну в данном случае и False и 0 завалятся с AttributeError на x.append(), так-что пускай уж лучше становится списком.
Imposeren
–1
...     if x is None:
...         x = []


не лучше ли:
...     x = x or []

?
Imposeren
0
Да, этот апп хорош. А еще автору стоило бы научиться пользоваться «class Media»(вместо инструкции «что вставить в темплейт»): github.com/applegrew/django-select2/blob/master/django_select2/widgets.py#L239
Imposeren
0
Нет. Видимо я не разбираюсь в терминологии. Просто индекс по нескольким полям. Наверное это то, что нужно:
create_index(model_class, fields[, unique=False])

Правда это делается не в определении модели.
Imposeren
0
А есть аналог джангового unique_together? и как насчет составных ключей для индексов?
Imposeren
0
Using Python decorators, functions can be optionally compiled to native machine code, which takes more memory but runs around 2 times faster than byte code. Such functions still implement the complete Python language.


Memory usage is minimised by storing objects in efficient ways. Integers that fit in 31-bits do not allocate an object on the heap, and so require memory only on the stack
.

There are 4 types of code emitters, selectable per function by function decorators: (compressed) byte code, native code, native code with native types, and inline assembler


Python exceptions are handled using a variant of setjmp/longjmp. This reduces the amount of flash and RAM needed to implement exceptions.


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

Size of int object: 4 bytes, stored on the stack or directly in a tuple/list/dictionary.

Например int в x64 версии питона занимает занчительно больше места:
>>> import sys

>>> sys.getsizeof(5)

24
Imposeren
0
подозреваю, что глаза исключительно для «простецкого вида».

Без глаз он похож на робо-охранника, что не всем может понравится.
С глазами вид глуповатый, но зато безобидный.


Кроме-того, на правах догадок: скорее всего там набор светодиодов и форму глаз можно менять, а можно и совсем выключить
Imposeren
+2
есть еще простейшая интеграция с nicedit, но порой этого вполне хватает:
pypi.python.org/pypi/django-nicedit

> drug&drop
&Rock'n'roll!