@rudepython

Страница 396 из 1719
Zart
13.05.2017
12:45:24
для привязки обычно берут серийник материнки удобен тем, что пользователь может апгрейдить комп сколько влезет, но пока материнка не поменялась комп тот же

Zart
13.05.2017
12:45:51
правда виртуалки позволяют подсунуть любой серийник 8))))

Google
Alexey
13.05.2017
12:46:22
Детект виртуалок надо сразу.

Stanislav
13.05.2017
12:46:47
Ruslan
13.05.2017
12:47:27
дрейф времени по ntp

Zart
13.05.2017
12:48:09
[root@aura id]# grep '' -r . ./product_name:All Series ./product_uuid:009B202B-DAD7-DD11-97D7-E03F490FC62B ./board_name:Z87-K ./board_asset_tag:To be filled by O.E.M. ./power/control:auto ./power/async:disabled ./power/runtime_enabled:disabled ./power/runtime_active_kids:0 ./power/runtime_active_time:0 grep: ./power/autosuspend_delay_ms: Input/output error ./power/runtime_status:unsupported ./power/runtime_usage:0 ./power/runtime_suspended_time:0 ./chassis_serial:Chassis Serial Number ./product_version:System Version ./chassis_vendor:Chassis Manufacture ./modalias:dmi:bvnAmericanMegatrendsInc.:bvr0903:bd10/25/2013:svnASUS:pnAllSeries:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnZ87-K:rvrRevX.0x:cvnChassisManufacture:ct3:cvrChassisVersion: ./chassis_version:Chassis Version ./bios_date:10/25/2013 ./bios_version:0903 ./product_serial:System Serial Number ./sys_vendor:ASUS ./bios_vendor:American Megatrends Inc. ./board_serial:131219366004410 ./uevent:MODALIAS=dmi:bvnAmericanMegatrendsInc.:bvr0903:bd10/25/2013:svnASUS:pnAllSeries:pvrSystemVersion:rvnASUSTeKCOMPUTERINC.:rnZ87-K:rvrRevX.0x:cvnChassisManufacture:ct3:cvrChassisVersion: ./chassis_asset_tag:Asset-1234567890 ./chassis_type:3 ./board_vendor:ASUSTeK COMPUTER INC. ./board_version:Rev X.0x

дрейф времени по ntp
дебильный какой совет

та же инфа в винде: D:\>wmic baseboard get /value Caption=Base Board ConfigOptions={"To Be Filled By O.E.M."} CreationClassName=Win32_BaseBoard Depth= Description=Base Board Height= HostingBoard=TRUE HotSwappable=FALSE InstallDate= Manufacturer=ASUSTeK COMPUTER INC. Model= Name=Base Board OtherIdentifyingInfo= PartNumber= PoweredOn=TRUE Product=P8Z77-V DELUXE Removable=FALSE Replaceable=TRUE RequirementsDescription= RequiresDaughterBoard=FALSE SerialNumber=MT7024K03801613 SKU= SlotLayout= SpecialRequirements= Status=OK Tag=Base Board Version=Rev 1.xx Weight= Width=

Stanislav
13.05.2017
13:11:30
Zart
13.05.2017
13:11:49
нет, оба физические

Stanislav
13.05.2017
13:11:50
Или это две разные ос

Ну у линукса лучше

Zart
13.05.2017
13:12:04
я ж не ребутал одну машину в разные ос

Stanislav
13.05.2017
13:12:04
Больше инфы

Google
Zart
13.05.2017
13:12:08
неа

у линукса в том каталоге несколько категорий

они все и из винды дёргаются

тот путь в /sys/ доступен лишь руту. dmidecode утилита умеет дергать эту же инфу и обычным юзерам, можно порыть откуда она тащит

вмик на винде был для примера, так-то там надо по вми это дергать

Stanislav
13.05.2017
13:13:36
дебильный какой совет
Ну ок А как тогда определить?

Zart
13.05.2017
13:14:17
а надо?

Anatoly
13.05.2017
13:14:36
Ну ок А как тогда определить?
а зачем пользователю твой софт?

Stanislav
13.05.2017
13:15:16
а зачем пользователю твой софт?
Прославлять Сатану, очевидно же

Dmitry
13.05.2017
13:16:21
подсмотри в systemd-detect-virt или virt-what или ебись с dmidecode -s system-product-name

Zart
13.05.2017
13:16:30
я смотрел те детект вирты

они сравнительно убоги и при большом желании обходятся

Dmitry
13.05.2017
13:16:53
да это тупо обертки, чтобы самому стопицот ифов не писать вокруг dmidecode

Zart
13.05.2017
13:16:57
ну да

собсно они первую пару таблиц дми и декодят

Dmitry
13.05.2017
13:17:26
а то там начинается VMware Workstation root@router:~# dmidecode -s system-product-name VMware Virtual Platform VirtualBox root@router:~# dmidecode -s system-product-name VirtualBox Qemu with KVM root@router:~# dmidecode -s system-product-name KVM Qemu (emulated) root@router:~# dmidecode -s system-product-name Bochs Microsoft VirtualPC root@router:~# dmidecode | egrep -i 'manufacturer|product' Manufacturer: Microsoft Corporation Product Name: Virtual Machine Virtuozzo root@router:~# dmidecode /dev/mem: Permission denied Xen root@router:~# dmidecode | grep -i domU Product Name: HVM domU

Zart
13.05.2017
13:17:26
в куему уже есть готовые ключи, позволяющие туда срать что угодно 8)

Stanislav
13.05.2017
13:17:35
Окей, спасибо

Буду держать вас в курсе своих начинаний, лол

Dmitry
13.05.2017
13:17:58
в куему уже есть готовые ключи, позволяющие туда срать что угодно 8)
по-моему механизм сранья чего угодно есть примерно у всего :)

Google
Zart
13.05.2017
13:18:22
гиперв к примеру заполняет поля как "Vendor: Microsoft, Board: Virtual Machine" мне понравилось как это выглядит в дмесг и для линупсовых виртуалок я задал "Linux Virtual Machine" вместо унылого "KVM"

Dmitry
13.05.2017
13:18:23
но примерно для 99% кулхацкеров сойдет

Zart
13.05.2017
13:18:45
virt-detect that, bitches

Dmitry
13.05.2017
13:19:09
еще lshw -class system можно

там тоже будет подходящее говно. но берущееся оттуда же (из тех же ключей qemu) :D

Zart
13.05.2017
13:20:47
гость в квм без модификаций $ dmesg | grep DMI: [ 0.000000] DMI: Bochs Bochs, BIOS Bochs 01/01/2011 с заданной инфой в дми: # dmesg | grep DMI: [ 0.000000] DMI: Linux Virtual Machine, BIOS 0.0.0 02/06/2015

няшно же

на бегиннерсах зашла речь про удаление лямбд из языка, поднял пеп 3099 чота просматриваю линки и проигрываю: I propose that strings (unicode/text) shouldn't be iterable. Seeing this: <ul> <li> i <li> t <li> e <li> m <li> <li> 1 </ul> a few too many times... it's annoying. Instead, I propose that strings get a list-like view on their characters. Oh synergy!

Eugine
13.05.2017
13:41:59
зашквар

Anatoly
13.05.2017
13:50:59
вот если библиотека называется NEST, пакетный менеджер складывает это в папку nest, а файл называется Nest.dll, то на винде всё хорошо.

Eugine
13.05.2017
13:51:19
In [1]: from __future__ import braces File "<ipython-input-1-2aebb3fc8ecf>", line 1 from __future__ import braces SyntaxError: not a chance

хех

Anatoly
13.05.2017
13:51:28
как только мы там переползаем в линуксы - ебать конём разработчиков библиотеки хочется

derevotyan
13.05.2017
14:53:18
Очередная версия раскладывателя-на-множители, теперь с лонг-поллингом! (питон уже не совсем чистый: полтора десятка строчек жаваскрипта) https://pastebin.com/xgHRFdKK На локалхосте все работает как надо, а вот на хероку ( https://lit-hamlet-91101.herokuapp.com ) - нет, вместо этого спамит реквестами для лонг-поллинга с максимальной возможной частотой (в норме новый должен отправляться только после того, как на старый отвечено)

Так, первая херокуособенность: когда я назначала реквесту хедер, на локалхост он приходил с маленькой буквы, а на хероку с большой. Вторая херокуособенность: заголовки и содержание пост-реквеста приходят двумя отдельными сообщениями.

Zart
13.05.2017
15:51:14
ты сейчас реквест с респонсом не путаешь?

derevotyan
13.05.2017
15:51:42
реквест - от браузера, респонс - от сервера.

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

Zart
13.05.2017
15:52:28
на хероку твоё приложение живёт за фронтенд веб-сервером, который занимается санацией запросов

на локалхосте во время отладки какое говно пошлёшь - такое и прилетит

Google
Zart
13.05.2017
15:53:10
регистр заголовков тебя волновать вообще не должен

derevotyan
13.05.2017
15:55:39
регистр заголовков тебя волновать вообще не должен
Я просто ищу их неправильно же. if 'forpolling' in data не найдет заголовок, если он "Forpolling".

Zart
13.05.2017
15:56:04
фласк?

derevotyan
13.05.2017
15:56:37
Это то самое задание на чистый питон, какой фласк?

Zart
13.05.2017
15:56:49
ы

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

либо взять из стдлиба класс для обёртки заголовков типа https://docs.python.org/3/library/http.client.html#httpmessage-objects

ну или рисовать цикл с .lower()/.upper() на худой конец

Dmitry
13.05.2017
16:01:33
Zart
13.05.2017
16:01:42
это уже детали

Admin
ERROR: S client not available

derevotyan
13.05.2017
16:09:26
ну или рисовать цикл с .lower()/.upper() на худой конец
Самое простое, чо. С классами из стдлиба та проблема, что в них предполагается, что ты получаешь реквест как объект, а у меня tcp-сервер, я получаю и посылаю байтовые строки. Способов взять строку реквеста и завернуть ее в объект я не нашла (возможно, плохо искала).

Zart
13.05.2017
16:10:18
у этих классов есть классметод для конструирования из байтов

или вру, гм

vlade11115
13.05.2017
16:43:31
Нормально на итератор так проверять? if iter(data) is data: data = list(data)

Zart
13.05.2017
16:44:35
эм... чо

что именно ты хочешь проверить? что data может быть итерирована?

vlade11115
13.05.2017
16:46:34
Я просто читаю код библиотеки статистики что ты выше скинул, а там такое несколько раз делают. Например https://github.com/python/cpython/blob/3.6/Lib/statistics.py#L584

Zart
13.05.2017
16:46:41
проверка iter(x) is x неверна в корне

vlade11115
13.05.2017
16:46:57
Google
Zart
13.05.2017
16:47:17
это даст тру лишь когда def __iter__(self): return self

т.е. когда объект сам себе итератор, как файл, например

похоже что этой проверкой они создают копию для подобных итераблов

Alex
13.05.2017
16:48:34
Zart
13.05.2017
16:48:48
def is_iter(data): return hasattr(data, '__iter__')
не работает на строках, а должно ;)

Zart
13.05.2017
16:49:13
в общем это проверка не на итерабл а на то, что итерабл возвращает раздельный итератор

Zart
13.05.2017
16:50:12
чтобы убедится что возвращает сам себя

Alex
13.05.2017
16:50:19
import collections def is_iter(data): return isinstance(data, collections.Iterable) (не проверял)

Zart
13.05.2017
16:50:21
а не копию себя

import collections def is_iter(data): return isinstance(data, collections.Iterable) (не проверял)
это правильный ответ, но он зависит от абц, который вводили где-то в 2.6 или 2.7 вроде

Zart
13.05.2017
16:51:08
для поддержки более древних питонов придётся скорее всего iter(x) в трайблок совать

vlade11115
13.05.2017
16:51:48
Zart
13.05.2017
16:51:55
а вот эти вот проверки isinstance(x, str) - главная причина по которой всякие фласки так тормозят

hasattr('1', '__iter__') True
>>> hasattr('1', '__iter__') False

в тройке добавили

Alex
13.05.2017
16:52:59
>>> hasattr('1', '__iter__') False
плюсую. в 3.6 работает

vlade11115
13.05.2017
16:54:51
а вот эти вот проверки isinstance(x, str) - главная причина по которой всякие фласки так тормозят
isinstance сильно медленне проверки через type? Просто в том же модуле вижу оба варианта.

Zart
13.05.2017
16:56:17
>>> import collections >>> class Iterable: ... def __getitem__(self, key): ... if key > 5: raise IndexError(key) ... return 10+key ... >>> i = Iterable() >>> hasattr(i, '__iter__') False >>> isinstance(i, collections.Iterable) False >>> iter(i) <iterator object at 0x012ECF70> >>> list(i) [10, 11, 12, 13, 14, 15]

>>> collections.Iterable.register(Iterable) <class '__main__.Iterable'> >>> isinstance(i, collections.Iterable) True

Страница 396 из 1719