Dmitry
Мютекс как что удобно представлять?
Dmitry
Тоесть гил не один, там целый комплекс всего?
Dmitry
Хорошо, вот данные помечены мьютексом как используемые потоком А. Идет переключение на поток Б. Поток Б хотел работать с этими данными, но они залочены потоком А. И получается система пропустит поток Б и перейдет на С пока А не отдаст данные. Верно?
Александр
В общем просто надо знать что действия с гил не атомарны, ни изменение структуры, ни запись в файл. GIL не дает атомарности пользовательскому коду. поэтому запись в файл ту же нужно обернуть в мютекс. Как пример. Например у тебя один поток пишет "hello" а потом "\n", а другой "world" "\n". Может выйти так, что один поток отработает свои тики, запишет "hello" и вместо второй команды выполнится 2 поток. Будет "hello world \n\n" в выводе
Александр
И что бы каждый поток выполнил операцию записи в файл и добавил символ переноса на новую строку нужно закрыть это как критическую секцию
Александр
lock
write("hello")
write("\n")
unlock
Александр
псевдокод
Александр
На деле методы выносятся в функцию доступную 2 потокам
Anonymous
Народ, тут есть кто работал с SkPy - скайп апи на гитхабе который лежит?
Oleksandr
Try logging into Skype for Web to see where the problem lies.
Oleksandr
The documentation (both for SkPy, and the Skype for Web protocol) is a work in progress, but the content is also hosted on GitHub -- submissions welcome.
Ivan
Приветствую. Прошу помощи. Функцию которую вы видите работает в другом потоке. При попытке создать масив байтов с помощью bytes выдает segmentation fault.
Ivan
не могу разобраться что не так. Когда использую функцию в главном потоке все прекрасно работает.
Ivan
буду очень благодарен за помощь
Aquinary
Офигеть. Чего теперь ждать?
Aquinary
Microsoft все-таки купил Github. Помянем.
По некоторым оценкам, сумма сделки около $5 млрд.
Наверняка, многие помнят, чем закончилась подобная история с покупкой Skype.
Чупакабра
Aquinary
Благо я юзаю гитлаб в основном для приватных реп
Чупакабра
Кстате, а мелкософт вроде норм чувака на место СЕО гитхаба поставили, мб если они туда своими грязными лапами соваться не будут, то и не загнется
Aquinary
Просто непонятно, что сподвигло продать своё детище микрософту
Chebyrash
То, c какой скоростью валят с ГитХаба смотрим вот тут:
https://monitor.gitlab.net/dashboard/db/github-importer?orgId=1
Aquinary
Понижение количества получаемой прибыли?
Aquinary
Чупакабра
Aquinary
7.5 миллиарда баксов
А имя, а "бренд" или как его можно там назвать? В общем фиг знает. Странно, что не гугл купил
Aquinary
Полгодика посмотрим
Aquinary
Что будет
Anonymous
IT-Liba
Библиотека программиста | Programmer Library
Скачать книги бесплатно
Download Books Free pdf djvu epub
https://t.me/itliba
Anonymous
Anonymous
Окей, больше не буду.
Mike
Andrey
А всю строку попробуйте декодировать так же
Mike
Я с мобилки
Mike
Тут ниудобна
Mike
Но второй символ уже дичь
Mike
Крест какой-то
Andrey
У меня при декодировании всей строки cp1251 валится эксепшн что не может декодировать символ по позиции, в этом то и проблема
Mike
Мб потому что приходит строка, а не байты?
Mike
И надо сначала строку в байты перегнать?
Andrey
Я пробовал, один фиг либо кривые символы вместо кириллицы либо не может понять что за символ
Vladimir
друзья, подскажите плз, я вроде давно сталкивался с таким, подзабыл, у меня есть такое:
"b'{"id":4810643,"accountId":202272529,"name":"mtya","profileIconId":782,"revisionDate":1523012458000,"Level":36}'"
Vladimir
как мне бы получать значения в идеале dict.get(Level)
Vladimir
чтобы вернулось 36
adel
Chebyrash
Chebyrash
Chebyrash
Проверьте )
adel
Vladimir
вроде так работает:
s = json.loads(r.content.decode('utf-8'))
сейчас еще проверю
Yan
переменная link определена?
Anonymous
link = i["link"]
Anonymous
В цикле
Anonymous
У тебя в словаре link - это какая-то переменная, где она определена?
Yan
х_х
Yan
Тогда, наверное, там нужны кавычки
Chebyrash
Естественно не правильно. i["link"]
Chebyrash
Вы же перебираете словари, а не объекты
Oleksandr
Есть такая JS приблуда как CryptJS. И есть Python
В общем, все крипто вычесления и хеши совпадают. Кроме одного случая, хеширования строки:
parse: function (hexStr) {
// Shortcut
var hexStrLength = hexStr.length;
// Convert
var words = [];
for (var i = 0; i < hexStrLength; i += 2) {
words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
}
return new WordArray.init(words, hexStrLength / 2);
}
эта процедурка - WordArray - превращает переданый ей хеш примерно такой:
'869d4578474812f1fd5026755c691ddbf48c6bfd84292235ddbe6e78c748ec4c307d51dd341899cf7e15'
в массив примерно такой:
{'sigBytes': 256, 'words': [-1846127087, -525984258, 1421638880, 693604242, -431093699, -1835349658, -802431828, 512627615, 1875065943, -247975330, 958956649, -1884646837, -801131195
И дальше берется обычная хеш-функция, котора на JS и Py3 совпадают.
Но результаты хеша не совпадут - Питон берет хеш от нех-числа, а жаваскрипт - от массива чисел.
Пока это решено через библиотеку js2py траслирующую код.
Но, возможно вы встречали, или знаете как реализовать WordArray на питоне?
Чупакабра
Есть такая JS приблуда как CryptJS. И есть Python
В общем, все крипто вычесления и хеши совпадают. Кроме одного случая, хеширования строки:
parse: function (hexStr) {
// Shortcut
var hexStrLength = hexStr.length;
// Convert
var words = [];
for (var i = 0; i < hexStrLength; i += 2) {
words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);
}
return new WordArray.init(words, hexStrLength / 2);
}
эта процедурка - WordArray - превращает переданый ей хеш примерно такой:
'869d4578474812f1fd5026755c691ddbf48c6bfd84292235ddbe6e78c748ec4c307d51dd341899cf7e15'
в массив примерно такой:
{'sigBytes': 256, 'words': [-1846127087, -525984258, 1421638880, 693604242, -431093699, -1835349658, -802431828, 512627615, 1875065943, -247975330, 958956649, -1884646837, -801131195
И дальше берется обычная хеш-функция, котора на JS и Py3 совпадают.
Но результаты хеша не совпадут - Питон берет хеш от нех-числа, а жаваскрипт - от массива чисел.
Пока это решено через библиотеку js2py траслирующую код.
Но, возможно вы встречали, или знаете как реализовать WordArray на питоне?
А в pycrypto не реализовано?
Чупакабра
Чупакабра
У меня оно через pip подтягивалось
Oleksandr
У меня оно через pip подтягивалось
Есть подозрения, что нет там такого, т.к. это похоже на чисто ДЖ-приблуду - разбить в масив,чтобменьше вышло число, быстрее обрабалывалось в озу
Чупакабра
Anonymous
началося
Aquinary
Такой вопросик
Aquinary
На 3.6 venv же,
Aquinary
?
Aquinary
Читанул, что virtualenv не рекомендуется использовать на новых версиях
Aquinary
И как я понимаю, директория, созданная с помощью виртуального окружения и будет являться рабочей?