Обновить
4
0

Неизвестный агрессивный человек

Отправить сообщение

Полностью согласен по поводу IDN, это надуманная отговорка. Между xn--e1afmkfd.xn--e1aybc и xn--e1afmkfd.xn--e-7tbbc разницы нет, оба выглядят одинаково бессмысленно.

Нет биндинга для Python. Я уже несколько раз натыкаюсь на MDBX (и поставил звезду за труды), в связи с чем у меня два вопроса:


  • За счёт чего получили ускорение на 20%?
  • С какой версией LMDB проводили последний бенчмарк?

Можно было пойти простым и эффективным путём — просто записать строки в LMDB, открыв базу данных с флагом MDB_NOSYNC. На Python это делается почти элементарно:


import lmdb

env = lmdb.open('dbenv', map_size=1024*1024*1024*32, sync=False)

for line in map(str.strip, open('file.txt').readlines()):
    if line:
        k, v = line.split(':')
        with env.begin(write=True) as txn:
            txn.put(k.encode(), v.encode())

env.sync()
Вы так говорите «табличный лукап», как будто это что-то плохое.

Как будто.
Да, поместится в L1 и будет работать быстро, увеличивая давление на кеш. Если положить на одну чашу весов два предсказуемых if, а на вторую — переход по таблице 384 байта, то я не ручаюсь, что из этого будет быстрее. Надо проверять.

Вызов __ctype_b_loc происходит до цикла. Он возвращает таблицу, по которой уже происходит лукап при каждой итерации.

На всякий случай приведу нормальный перевод The Zen of Python:


Красивое лучше, чем уродливое.
Явное лучше, чем неявное.
Простое лучше, чем сложное.
Сложное лучше, чем запутанное.
Плоское лучше, чем вложенное.
Разреженное лучше, чем плотное.
Читаемость имеет значение.
Особые случаи не настолько особые, чтобы нарушать правила.
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если не замалчиваются явно.
Встретив двусмысленность, отбрось искушение угадать.
Должен существовать один — и, желательно, только один — очевидный способ сделать это.
Хотя он поначалу может быть и не очевиден, если вы не голландец.
Сейчас лучше, чем никогда.
Хотя никогда зачастую лучше, чем прямо сейчас.
Если реализацию сложно объяснить — идея плоха.
Если реализацию легко объяснить — идея, возможно, хороша.
Пространства имён — отличная вещь! Давайте будем делать их больше!
Как вы обеспечиваете «No crash recovery needed. No maintenance is required.» без WAL?

Если коротко, в LMDB используется CoW, из-за чего при падении процесса отпадает необходимость в транзакционном журнале — больше не нужна "перемотка" транзакций с контрольной точки. В то же время, отсутствие WAL затрудняет реализацию репликации.


Есть неплохая бумага от автора LMDB по внутреннему устройству этой базы данных.
http://www.lmdb.tech/media/20130406-LOADays-LMDB.pdf

Вместе с Gevent будет.

А я один на последних билдах (в пределах двух недель или месяца) испытываю достаточно частое зависание браузера в Windows?

Не один. На моей Windows 7 SP1 после обновления вивальди случилось так, что иногда он начинает жрать 100% ЦП и закрывать его приходится через диспетчер задач) Я так и не смог выяснить, что это было.

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

Умножение килограммов на мандарины это проблема слабой типизации и неявных преобразований, а не проблема динамической типизации как таковой. В JavaScript можно сделать [] * "abcdef", но Python этого не разрешит.

https://www.infoq.com
InfoQ — статьи и новости из мира IT от профессионалов для профессионалов. Публикации рецензируются)

Или я параноик или члены консорциума W3C попросту продались лоббистам из медиакорпораций.

Не параноик. W3C был сожран WHATWG, который контроллируется конгломератом из Google, Apple, Mozilla и Microsoft. Теперь W3C больше не занимается публикацией собственных спецификаций, вся работа происходит на полях WHATWG.
https://www.opennet.ru/opennews/art.shtml?num=50764

Единый интерфейс. Реализация приложения отделена от сервиса, который оно предоставляет. То есть пользователь знает, что оно делает и как с ним взаимодействовать, но как именно оно это делает не имеет значения. При изменении приложения, интерфейс остаётся прежним, и клиентам не нужно подстраиваться.

https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_5
https://ru.wikipedia.org/wiki/REST#4._Единообразие_интерфейса
https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven


Развиваемому вместе с HTTP Роем Филдингом, REST'у было предназначено использовать HTTP 1.1, в качестве транспорта.

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


Возможные сценарии описываются термином CRUD — Create, Read, Update, Delete.

CRUD не является частью ограничений ни REST, ни HTTP.


POST используется для создания нового объекта в наборе объектов. Или более сложным языком: для создания нового подчинённого ресурса.

Включая, но не ограничиваясь. Метод POST предназначен для передачи данных на сервер с целью дальнейшей обработки — он используется для любых действий, которые не нужно стандартизировать в рамках HTTP. До RFC 5789 он был единственным легальным способом вносить частичные изменения.
https://roy.gbiv.com/untangled/2009/it-is-okay-to-use-post
https://tools.ietf.org/html/rfc7231#section-4.3.3

Есть отличная статья, которая рассказывает о сетевой механике в Source. Затрагиваются такие проблемы, как интерполяция, лагокомпенсация, предсказание ввода. https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking:ru

Недавно — это около часа. Я бы не писал, если бы вчера не столкнулся с этим. Название не гуглилось (его ещё вспомнить надо), хотя статья на зеркале itnan.ru уже была.

Берёте любую статью и копируете ее название в поисковую систему.

Ещё раз. Это не работает для недавно удаленных статей.)

Это так не работает для статей, которые были удалены недавно. На всякий случай https://itnan.ru

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

Не подскажете хоть одно такое зеркало?)

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность