
Zart
31.10.2016
11:45:40
"Warning
The pseudo-random generators of this module should not be used for security purposes. "
генерация сильных паролей относится к данному случаю

Kill me pls
31.10.2016
11:46:06
Да оно и понятно
От энтропии зависит многое

Google

Zart
31.10.2016
11:46:46
а её там нет

Kill me pls
31.10.2016
11:47:03
А в большом диапазоне если?
Просто будет повторяться?

Zart
31.10.2016
11:47:36
в питоне используется мерсенн-твистер. он вроде не относился к криптостойким

Letalis
31.10.2016
11:49:20
А существует ли не псевдо-рандом, а полностью настоящий рандом?

Zart
31.10.2016
11:49:34
аппаратные источники
интел на чипсетах встраивала всякие tco/rng еще с i810 хренадцать лет назад

Kill me pls
31.10.2016
11:50:46

Zart
31.10.2016
11:51:18
$ ls /lib/modules/4.1.7-100.fc21.x86_64/kernel/drivers/char/hw_random/
amd-rng.ko.xz intel-rng.ko.xz timeriomem-rng.ko.xz tpm-rng.ko.xz via-rng.ko.xz virtio-rng.ko.xz

Letalis
31.10.2016
11:51:37
Настоящий рандом не существует)
Настоящий рандом что-то на уровне квантовых флуктуаций. Возможно, когда через несколько (десятков) лет будут в ходу квантовые компьютеры, такая фича будет в них каким-либо образом реализована )

Kill me pls
31.10.2016
11:52:34
Ахаха

例
31.10.2016
11:53:50

Igor
31.10.2016
11:54:03
а я бля искал картинку ебался :(

Google

Letalis
31.10.2016
11:54:49
Типа, чем больше "Yes", тем лучше?)

例
31.10.2016
11:55:34
И либо тут нету столбца с поддержкой неограниченного look ahead/behind либо питон научили этому

Zart
31.10.2016
11:57:32
в стдлибовом питоновском ре лукахеда не было вроде
но если тебе нужна серьезная работа с регулярками и особенно юникодом - сразу ставь https://pypi.python.org/pypi/regex

例
31.10.2016
11:59:05
А, там вторая таблица еще есть
Спасибо, будем надеется она мне не понадобится)


Zart
31.10.2016
12:06:47
пытаюсь найти линк на офигенную статью про регекспы..
https://swtch.com/~rsc/regexp/regexp1.html вот этот линк на ирц в свое время летал, крайне познавательно.
"Notice that Perl requires over sixty seconds to match a 29-character string. The other approach, labeled Thompson NFA for reasons that will be explained later, requires twenty microseconds to match the string. That's not a typo. The Perl graph plots time in seconds, while the Thompson NFA graph plots time in microseconds: the Thompson NFA implementation is a million times faster than Perl when running on a miniscule 29-character string. The trends shown in the graph continue: the Thompson NFA handles a 100-character string in under 200 microseconds, while Perl would require over 1015 years. (Perl is only the most conspicuous example of a large number of popular programs that use the same algorithm; the above graph could have been Python, or PHP, or Ruby, or many other languages. A more detailed graph later in this article presents data for other implementations.) "
(1015 там - это 10 в 15й степени, бтв, а не тыща пятнадцать)


Андрей
31.10.2016
12:48:24
Ребят, есть скрипт, который запускает внешний скрипт, нужно получить последнюю строчку stdout внешнего скрипта из запускающего _в любой момент времени_. Как это можно сделать?

Lisa
31.10.2016
12:49:56
народ, как вставить переменную внутрь строки в теге static в шаблоне? типа <img src="{% static 'live/ MY_VARIABLE .png' %}"

Dan
31.10.2016
12:51:57
лучше всего мне кажется передавать из въюхи
весь урл
но как вариант
<img src="{% static 'live/' %}{{ MY_VARIABLE }} .png"

Lisa
31.10.2016
12:53:47
хммм, только переменную в {{ }}. надо поэкспериментировать %) спасибо

Dan
31.10.2016
12:54:22
ну да :)

Zart
31.10.2016
12:59:09

Google

Zart
31.10.2016
12:59:23
ну или попен

Андрей
31.10.2016
13:00:16
ну или попен
оно понятно, но как в случайный момент времени получить аутпут?

Zart
31.10.2016
13:00:25
что значит в случайный?

Андрей
31.10.2016
13:01:37
внешний процесс выполняется в фоне, когда пользователь хочет узнать прогресс выполнения внешнего скрипта, он спрашивает

Zart
31.10.2016
13:02:28
у тебя есть скрипт А.
скажем ты запускаешь его из шелла. в этом случае его стдаут идёт на консоль
он запускает внутри себя скрипт Б. через os.system/subprocess, не суть важно. без редиректов.
в этом случае процесс скрипта Б наследует дескрипторы и выдает вывод на тот же стдаут на ту же консоль.
скрипт А это ни контролировать, ни мониторить не может (редиректа не было, и я не предполагаю что он создает свои пти)
второй вариант - скрипт А перехватывает вывод Б и выводит его сам
в этом случае он всегда знает что через него прошло в произвольный момент времени

Андрей
31.10.2016
13:03:39

Zart
31.10.2016
13:04:42
>>> import sys
>>> from subprocess import Popen, PIPE
>>> p=Popen('dir', shell=True, stdout=PIPE)
>>> for line in p.stdout:
... sys.stdout.write(line)
...
Том в устройстве D имеет метку DATA
Серийный номер тома: 344B-B140
Содержимое папки D:\
...
печатать ли line - как хочешь

Андрей
31.10.2016
13:06:12

Zart
31.10.2016
13:06:44
и?
про то какой хуйней занимается скрипт А не было ни слова

Zart
31.10.2016
13:07:33
вариантов несколько, вероятно проще тредом

Андрей
31.10.2016
13:08:35
да, забыл. скрипт А в это время слушает команды пользователя, одна из них, грубо говоря, получить последнюю строку аутпута скрипта Б


Zart
31.10.2016
13:25:01
тредами например:
$ python
Python 2.7.1 (r271:86832, Apr 12 2011, 16:15:16)
[GCC 4.6.0 20110331 (Red Hat 4.6.0-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, threading
>>> from subprocess import Popen, PIPE
>>>
>>> status = None
>>>
>>> def monitor():
... p = Popen('cat /usr/share/doc/python-2.7.1/LICENSE | while read line; do echo $line ; sleep 1 ; done', shell=True, stdout=PIPE)
... while 1:
... global status
... status = p.stdout.readline()
...
>>> t = threading.Thread(target=monitor)
>>> t.setDaemon(True)
>>> t.start()
>>> status
'\n'
>>> status
'\n'
>>> status
'Python was created in the early 1990s by Guido van Rossum at Stichting\n'
>>> status
'Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands\n'
>>> status
"as a successor of a language called ABC. Guido remains Python's\n"
>>> status
"as a successor of a language called ABC. Guido remains Python's\n"
>>> status
'principal author, although it includes many contributions from others.\n'
>>> status
'principal author, although it includes many contributions from others.\n'
>>> status
'principal author, although it includes many contributions from others.\n'
>>> status
'\n'
>>> status
'\n'
>>> status
'\n'
>>> status
'\n'
>>> status
'In 1995, Guido continued his work on Python at the Corporation for\n'
>>> status
'In 1995, Guido continued his work on Python at the Corporation for\n'
>>> status
'National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)\n'
в 3.5 можно стильно, модно, молодёжно через https://docs.python.org/3/library/asyncio-subprocess.html#asyncio.create_subprocess_shell
но в примере выше не хватает локов по хорошему


Андрей
31.10.2016
13:29:32
тредами например:
$ python
Python 2.7.1 (r271:86832, Apr 12 2011, 16:15:16)
[GCC 4.6.0 20110331 (Red Hat 4.6.0-2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, threading
>>> from subprocess import Popen, PIPE
>>>
>>> status = None
>>>
>>> def monitor():
... p = Popen('cat /usr/share/doc/python-2.7.1/LICENSE | while read line; do echo $line ; sleep 1 ; done', shell=True, stdout=PIPE)
... while 1:
... global status
... status = p.stdout.readline()
...
>>> t = threading.Thread(target=monitor)
>>> t.setDaemon(True)
>>> t.start()
>>> status
'\n'
>>> status
'\n'
>>> status
'Python was created in the early 1990s by Guido van Rossum at Stichting\n'
>>> status
'Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands\n'
>>> status
"as a successor of a language called ABC. Guido remains Python's\n"
>>> status
"as a successor of a language called ABC. Guido remains Python's\n"
>>> status
'principal author, although it includes many contributions from others.\n'
>>> status
'principal author, although it includes many contributions from others.\n'
>>> status
'principal author, although it includes many contributions from others.\n'
>>> status
'\n'
>>> status
'\n'
>>> status
'\n'
>>> status
'\n'
>>> status
'In 1995, Guido continued his work on Python at the Corporation for\n'
>>> status
'In 1995, Guido continued his work on Python at the Corporation for\n'
>>> status
'National Research Initiatives (CNRI, see http://www.cnri.reston.va.us)\n'
спасибо большое, достаточно доходчиво


Dmitriy
31.10.2016
16:57:20
Кто знает, как на вход в скрипт в качестве параметра передать мултистринг с кучей кавычек (чтобы они сохранились) ?

Google

Letalis
31.10.2016
17:01:36
'string"string"string'
так?
заключить стринг в ' ' , если внутри используются " "

Igor
31.10.2016
17:09:56
есть докстринги
""" писька """
так же с одинарными

Admin
ERROR: S client not available

Zart
31.10.2016
17:15:00

Igor
31.10.2016
17:16:01
согласен, тройные кавычки правильнее

Dmitriy
31.10.2016
17:16:36
тройные одинарные ?

Zart
31.10.2016
17:17:17
>>> "три кавычки: '''"
"три кавычки: '''"
>>> 'три кавычки: \'\'\''
"три кавычки: '''"
>>> '''три кавычки: \'\'\''''
"три кавычки: '''"
>>> """три кавычки: \'\'\'"""
"три кавычки: '''"
>>>

Levent
31.10.2016
17:17:52
""" П
и
з
д
а
"""

Zart
31.10.2016
17:18:23
в питоне строки в одиночных и двойных кавычках взаимозаменяемы, это раз
если нужно внутри строки использовать кавычки одного вида, удобно заключить их в кавычки другого - '"' или "'"
в любом случае их можно квотировать - \' \"
тройные одинарные ''' и тройные двойные """ являются мультистроковыми
>>> '''
... "quoted"
... '''
'\n"quoted"\n'
строковые константы одна за другой склеиваются:
>>> 'string1' 'string2'
'string1string2'
>>> ('string1'
... 'string2')
'string1string2'

Dmitriy
31.10.2016
17:21:01
не проканало
подаю на вход '''{ "https://dockerblahblah.ru:453" : { "auth" : "ZGfja42yLXNjbWRldjpBUDRFfkRKRmZ0Zk5CaHBzem5tR3lIejhxekU=", "email" : "dockerblahblah@somecompany.com" } }'''
внутри '''{%

Zart
31.10.2016
17:21:36
\ в конце строки продолжает текущую строку следующей:
>>> 'string1\
... string2'
'string1string2'
а чо, у джангошаблонов разве питоний синтаксис? это же другой язык

Google

Dmitriy
31.10.2016
17:22:47
не, это .dockercfg наполняю

Zart
31.10.2016
17:23:29
а причем тут питон?

Dmitriy
31.10.2016
17:24:00
у докера есть docker-py

Zart
31.10.2016
17:24:05
всё что я перечислял выше - это то как питон парсит
конфигов всё это не касается примерно никак

Dmitriy
31.10.2016
17:24:18
я понимаю, что ты перечислял
агрх
Еще раз, есть скрипт blahblah.py в качестве параметра dockercfgContent принимает мультистринг, который внутри сохраняется в текстовый файл .dockerfcg
with open(os.path.realpath(os.path.expanduser('~/.dockercfg')), 'w') as f:
f.write(dockercfgContent)
подаю как параметр '''{ "https://dockerblahblah.ru:453" : { "auth" : "ZGfja42yLXNjbWRldjpBUDRFfkRKRmZ0Zk5CaHBzem5tR3lIejhxekU=", "email" : "dockerblahblah@somecompany.com" } }'''
в файле - '''{%
похоже он проблем воспринимает как следующий параметр

Zart
31.10.2016
17:26:50
"в файле - '''{%" - это или ты недокопировал сообщение об ошибке, или же рассказываешь нам что в файл записалось чтото иное

Dmitriy
31.10.2016
17:27:24
да, в файл записалось не то, что я передал в качестве параметра
запислось не то, потому что я предпологаю, что не правильно подал на вход
отсюда и был вопрос

Zart
31.10.2016
17:28:37
с учетом expanduser - ты вообще тому юзеру-то пишешь?

Dmitriy
31.10.2016
17:29:15
тому )
Эта группа больше не существует