All streams
Search
Write a publication
Pull to refresh
9
0
Игорь Карпов @lilo_panic

User

Send message
Аналогично, присоединяюсь к вопросу. Я бы предпочел вообще весь исходящий трафик запустить через свои сервера. Ибо везде LCR и прохождение АОНа. Кстати, на моем HG8245 hw_ctree.xml, что-то даже если через консоль заходить и смотреть " /mnt/jffs2/hw_ctree.xml" все равно закриптован. Чем парсили не подскажете?
Например, челюсти отвисали при виде закрытия за «наркотики» популярного сайта про игру EVE Online — а теперь законопроект запретит и информацию о способах использования «веществ, обладающих схожим с наркотическими средствами и психотропными веществами воздействием на организм человека».


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

Дальше запретят виртуальные наркотики для гуманоидов? Пускай упражняются в словоплетении и докажут, что рассматриваемая гуманоидная личность в достаточной степени тождественна человеческой, поэтому подобного рода перенос свойств является логически приемлемым.
Добавил все найденное гуглом на djangopackages.
Тогда добавлю еще один вариант: django-throttle.
Часть из приведенных умеет работать только с декораторами.

django-cache-throttle — только декоратор
django-rated требует redis (не имею ничего против, но это не всегда возможно)
django-ratelimit — упор на декораторы
django-break — декораторы, ip получается вот так: «return request.META['REMOTE_ADDR']», а там не всегда то, что надо

Проблема с декораторами всегда только одна: либо модификация чужих исходников, либо оборачивание чужой вьюхи своей (вместе с декоратором) и переопределение url в urls.py. Я думаю, что это не слишком удобно.
Спасибо. Вариант с dict правильней, пожалуй. Подумаю над фиксом. Заодно, если реализовать такой вариант, можно будет передавать кастомные для method_type congestion handler'ы. Правда, не совсем понятно нужно ли это (поскольку callback и так получает все необходимое, тот же request).
На всякий случай: «post» просто был использован как пример. Ключ для хранения last_acces берется из request.method, который может быть любым (get, patch, post, put, delete).

IMHO стоит разбить на отдельные параметры с говорящими именами.

Можно dict с примером данных?
В каком смысле, хрен, а не кэш?
Лучшие ответы лежали в плоскости социального взаимодействия: наклеить стикер с номером техподдержки, пригласить её на свидание и так далее.
пригласить её на свидание

image
Легкий distortion/overdrive и компрессия, питчер, вероятно, помогут избавиться от «характера» звучания голоса. Можно попробовать незначительно ускорить/замедлить речь.
Я вот, когда на JS искал Levenshtein distance, нашел некий rosettacode.org
Например, rosettacode.org/wiki/Levenshtein_distance
Когда-то давно делал такое же на django. Без выхода админа, просто подмена текущего юзера через middleware.
class ImpersonateMiddleware(object):
    def process_request(self, request):
        if request.user.is_superuser and "__impersonate" in request.GET:
            request.session['impersonate_id'] = int(request.GET["__impersonate"])
        elif "__unimpersonate" in request.GET and 'impersonate_id' in request.session:
            del request.session['impersonate_id']
        if request.user.is_superuser and 'impersonate_id' in request.session:
            request.can_unimpersonate = True
            request.user = User.objects.get(id=request.session['impersonate_id'])
А что если сервер будет сначала помещать ответ в очередь, а извлекать его, только если текущее время кратно, к примеру, 100мс?

А что если сервер под такой атакой по времени тупо просядет? Как атакующая сторона справится с этим?

А что если отвечать со все увеличивающимся на случайную величину временем, если предыдущий запрос оказался невалидным?

Я опасно некомпетентен в криптографии? (:
Когда в Pidora найдут уязвимость, обычный комментарий «решето» обрастет новыми смыслами.
Знаете, у нас ведь большое число сограждан считает (причем абсолютно искренне!), что интернет абсурден и выдуман с единственной целью распространения педофилии, поэтому нет ничего зазорного в том, чтобы заблокировать гугл, вордпресс и еще пачку доменов.

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

Правила нужны для удобства и порядка. Если правила приносят хаос и глупость в жизнь, то зачем они такие? ПДД приносят порядок, блокирование сайтов — хаос. Вообще, что следует из того, что "у нас ведь большое число сограждан считает (причем абсолютно искренне!), что правила дорожного движения абсурдны, глупы"? Или, быть может, это как-то оправдывает вторжение баламутов в сеть со своими «порядками»?

Идиотские правила никак не подрывают авторитета адекватных, написанных (в вашем примере) кровью. Многие сегодняшние законы — это пропаганда суицида. Может, стоит запретить их?
Вероятно, меня осудят, но виноваты в этом конечные исполнители. Видишь, что тебя заставляют быть идиотом, вынуждают принимать и исполнять идиотские решения и постановления? Увольняйся. До тех пор, пока кто-то принимает абсурд, это зло легитимно. И не важно, что принимают из-под палки, важно, что на это рабское согласие опирается власть. Если каждый несогласный уволится, все эти конторы захлебнутся в текучке. И маразм просто не сможет быть выражен в конкретных действиях.

И не существует другого выхода. Уже были бунты, революции и т.д. Ничего из этого не решило проблему. А проблема есть только одна: рабство и рабское согласие исполнять любую мерзость под угрозой выживания. Источник всего в системе — человек. Отказываешься питать собой и своими действиями идиотизм системы (которая тебя же между делом и имеет), и идиотизм умирает.

И мне все равно, что у этих людей, которые там работают, есть семьи (сколько раз я тебе говорила: ты не изменишь этот мир! ты ставишь наше выживание под угрозу!), дети (из-за того, что ты уволился не на что покупать одежду на 1 сентября!), планы (мы же хотели купить irobot!), отдых на горизонте (из-за тебя мы лишимся отпуска!), страх поиска новой работы, и т.д. Это — все то, что они боятся потерять. Факт остается фактом: они — соучастники.

Поэтому вот мое вам заявление, исполнители (вероятно ведь, что кто-то из них это читает?): ответственность за принятое решение — на них. Ответственность за исполненное решение — на вас. Нанесенный ущерб на вашей совести.
В результате гуглежки наткнулся вот на это. Если точнее, init.d скрипт вот тут лежит (или посмотреть на гитхабе). Если будете ставить на Debian Wheezy, то в скрипте нужно поменять на 26 строчке «modprobe zram num_devices=..» на «modprobe zram zram_num_devices=..», это бага, посмотреть багу можно тут.
И, кстати, почему подобные «раскрытия» настораживают? Да потому, что я не знаю, что обо мне могут сообщить этому самому гос-ву. Если я буду это знать — легко, рассказывайте кому угодно и что угодно, я не оставлю о себе компрометирующей информации.
Ну не очень он радует. Если обо мне распространяют мою информацию, то я должен об этом знать. «Мы только что слили о вас гос-ву вот что: %s». Другими словами, я хочу знать то, что обо мне знает гугл. Т.е. увидел, что что-то лишнее проиндексировал поисковик — сменил акк.
Меня слабо интересует вычисленная информация, наподобие всяких adwords и т.п. (поскольку они разрабатывали эти алгоритмы и делиться ни ими, ни их результатами не обязаны), а вот собранная — очень даже. И хотя гугл делает отчеты, содержащие разную информацию обо мне, тот факт, что вероятно гугл знает обо мне больше, чем я (или больше, чем сообщает мне), меня настораживает.
Я обычно делаю так:
# settings.py
DEBUG=True
DEBUG=False
config_files_path = os.path.join(PROJECT_PATH, 'settings', '*.conf.py')
config_files = glob.glob(config_files_path)
config_files.sort()

for f in config_files:
    execfile(os.path.abspath(f))


И все настройки сбрасываю в settings/* по порядку. Туда же можно подложить какой-нибудь локальный конфиг.
00-db.conf.py
01-logging.conf.py
10-apps.conf.py
20-project.conf.py
21-middleware.conf.py
22-template_context_processors.conf.py
23-mailing.conf.py
25-debug_toolbar.conf.py
30-locale.conf.py
35-amazon_s3.conf.py
36-easy_thumbnails.conf.py
37-django_ajax_selects.conf.py
38-sentry.conf.py
.......
98-celery.conf.py
99-debug.conf.py

В последнем «99-debug.conf.py» пишу «if DEBUG:» и переопределяю там настройки. Вдобавок несложно чуть-чуть переписать скрипт так, чтобы в случае с debug, он дергал настройки из settings_debug, например, как-то так:
RELEASE='debug' if DEBUG else 'release'
config_files_path = os.path.join(PROJECT_PATH, 'settings', RELEASE,  '*.conf.py')

А если в большинстве случаев release_config == debug_config, то, наверное, можно заюзать симлинки. Имхо, плюс такого подхода, как минимум, в том, что настройки каждого app вынесены в отдельный файл.
Я вот застал только MUD'ы, а потом их упадок и почти смерть. После MUD'ов играть в вов, ультиму и т.д. не смог. Надеюсь, Elite: Dangerous будет такой, что ее примут фанаты предыдущих частей.

p.s. Если так подумать, больше 5 лет были выброшены на ежедневный постоянный онлайн, психопатию с диалапами, рвущимися адсл, рипами, массрипами, дт, цр, банами и т.д. И ведь не надоедало же.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity