
Maxim robox
28.09.2017
15:44:32
Они на разных уровнях работают. Общее только название же.

Nikolay
28.09.2017
15:44:33
в общем случае сокет - это комбинация из файлхэндлера и пары айпи-порт, эта штука является коннектором, через который сервер принимает запросы, а клиент отправляет

in favor
28.09.2017
15:44:37

Nikolay
28.09.2017
15:44:55
но сокет - это вообще понятие сетевого уровня, как Макс правильно заметил

Google

Roman
28.09.2017
15:45:24

Maxim robox
28.09.2017
15:45:31
Нет.

Nikolay
28.09.2017
15:45:35
а вебсокет - понятие прикладного, когда из браузера прямо из джаваскрипта можно открыть соединение с сервером и получать по нему объекты напрямую

Maxim robox
28.09.2017
15:47:05

Roman
28.09.2017
15:47:18

Maxim robox
28.09.2017
15:47:34
В том числе из джаваскрипта.
Помимо прочего.

Roman
28.09.2017
15:47:43

Nikolay
28.09.2017
15:48:05
почему?
потому что сокет - это точка коннекта к сети ядра твоей операционной системы
ни одно сетевое соединение в обход него не идет

Roman
28.09.2017
15:48:39

Google

Roman
28.09.2017
15:49:16
вообще, вопрос про отличие сокета от вебсокета я придумал чтобы троллить кандидатов на собеседовании :)

Nikolay
28.09.2017
15:49:30

Aragaer
28.09.2017
15:49:41
они просто ниже по уровню, чем сокеты
сокеты на 4-м уровне

Roman
28.09.2017
15:50:11

Aragaer
28.09.2017
15:50:33
попытался запустить свою игрушку, а оказывается за это время у аддона монго пропал бесплатный вариант

Roman
28.09.2017
15:50:45

Nikolay
28.09.2017
15:50:58

Roman
28.09.2017
15:51:13
можно, но зачем?
быстрее. у тебя куча аллокаций и метаданных в ядре для каждого mbuf/skb

Nikolay
28.09.2017
15:52:00

Aragaer
28.09.2017
15:52:09
skb вообще делается для каждого сетевого пакета

Maxim robox
28.09.2017
15:52:14
Похоже, Роман решил просто выпендриться своим знанием о наличии других протоколов помимо TCP и UDP.

Nikolay
28.09.2017
15:52:22
единственный смысл в наше время НЕ использовать l4 - это делать высокоуровневое шифрование

Roman
28.09.2017
15:53:24

Aragaer
28.09.2017
15:53:28
я тут на днях обнаружил что в TCP есть шифрование
TCP-AO

Roman
28.09.2017
15:54:12

Google

Nikolay
28.09.2017
15:54:14

Maxim robox
28.09.2017
15:54:44

Nikolay
28.09.2017
15:54:47
можно еще Машку за ляжку и козу на возу

Roman
28.09.2017
15:55:26
да ну, экономия на спичках
ну посмотри почему такой всплеск решений kernel bypass. посмотри на цифры netmap/dpdk, на seastar и http://www.openonload.org/

Aragaer
28.09.2017
16:00:33
на самом деле вопрос на работе возник - как можно что-нибудь этакое сделать, чтобы добавить какую-то аутентификацию пользователя чисто на уровне tcp
потому что у нас в железке куча разных сервисов, встраивать аутентификацию в каждый чот не хочется

Roman
28.09.2017
16:03:03
http://www.cathayschool.com/tcp-md5-signature-option-a1551.html
и в quagga есть поддержка
но нужна еще включенная опция в ядре

Nikolay
28.09.2017
16:04:39

Aragaer
28.09.2017
16:04:47
мм.. ну у нас там помимо прочего и ось не линукс 8)
не, tcp-md5 оно типа устарело в пользу tcp-ao
но да, тут можно заюзать некий секрет, известный юзеру и железке

Tony
28.09.2017
16:24:54
def _lint_file(self, file_name):
with open(file_name) as f:
for number, line in enumerate(f, 1):
self._lint_line(line, number, file_name)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 43: ordinal not in range(128)
как ему явно указать юникод?

Andre
28.09.2017
16:26:25
сохрани файл в utf-8

Google

Tony
28.09.2017
16:27:10

Andre
28.09.2017
16:28:17

Tony
28.09.2017
16:29:54
правой кнопкой по полю ввода -> file encoding
не
все равно
он читает в аски

Admin
ERROR: S client not available

Tony
28.09.2017
16:32:07
файл в юникоде
with open(file_name, encoding='utf-8') as f:

Nik
28.09.2017
17:08:21
Ура, я вас нашел
Ребята, создал бота. Работаю с ним через telebot. И теперь вопрос.
Как отправить сообщение всем юзерам бота?

Mike
28.09.2017
17:09:54
сохраняй их всех в редиску, и потом всем отправляй?

Nik
28.09.2017
17:10:01
точнее, как узнать id всех подписчиков

Mike
28.09.2017
17:10:43
....
redis.set(user_id, user_specific_data)
....
for user in redis.keys("*"): ...
....

S t u
28.09.2017
17:12:04
С какой программой это можно пользовать ?

Mike
28.09.2017
17:12:05
ну точнее там скорее всего если словарь хранить хочешь будет не set а hmset и потом в цикле redis.hgetall(user) и шли персонализированные сообщения
сли не надо, то просто заприсывай redis.set(user_id, "known") и по кючам итерируйся

Nik
28.09.2017
17:18:30
тоесть телеграм апи мне сама не может сообщить список подписчиков бота?

Google

Nik
28.09.2017
17:18:42
и мне надо их самому запоминать?
видимо так и прийдется
Ответ на тостере "Заранее никто за бота подписчиков не считает"

ivan
28.09.2017
18:18:56
подскажите как выдать формат в datetime типа день.месяц.год
а не год-месяц-день

in favor
28.09.2017
18:19:14
datetime.strftime вроде
>>> d.strftime("%d/%m/%y")
'11/03/02'

ivan
28.09.2017
18:21:38
мерси

Nazar
28.09.2017
18:24:38
Парни, а расскажите как и чем лучше всего читать «большие» текстовые файлы.
То есть хочется прочитать допустим файл в 200-300 мб и сделать какие-то действия.
Читать сразу весь файл, как-то не очень хочется, ибо файл может весить как 10мб, так и 1000.
Самый адекватный на мой вгляд это читать порциями, запоминая позицию.
Что вы скажите на этот счет?

Aragaer
28.09.2017
18:25:03
итератор должен вести себя разумным образом

ivan
28.09.2017
18:30:56
а как-нибудь логически можно на части распилить? можно в несоклько процессов выполнять

Aragaer
28.09.2017
18:31:42
в позиксе есть aio
но чо и как в питоне не знаю

Сергей
28.09.2017
18:32:51

Eldar
28.09.2017
18:33:54

Сергей
28.09.2017
18:34:01
Максимум, разогнаться можно до скорости чтения с диска

Eldar
28.09.2017
18:34:03

Сергей
28.09.2017
18:34:30