
Oleg
26.03.2018
12:15:45
единственное что в винде я не могу понять это на кой хер столько разных версий .NET framework'ов без обратных совместимостей
и ок... ладно... почему бы их сразу вместе с виндой не включить в дефолтную поставку?))

Pavel
26.03.2018
12:16:41
У меня как раз проект не запустился на .NET 4.7.1, VS орал и сыпал ошибками, но прекрасно запустился на 4.7.0 ))

Oleg
26.03.2018
12:16:59
вот вот вот

Google

Evgeny
26.03.2018
12:17:02
Вы что, на Windows глюков не бывает.

Dmitry
26.03.2018
12:17:24

Evgeny
26.03.2018
12:17:50

Dark
26.03.2018
12:18:02

Evgeny
26.03.2018
12:18:10
Ну или ты таки немножечко нас обманываешь :)

Dmitry
26.03.2018
12:19:40
Без гуи да. Тут не спорю
Без гуи там нечему глючить
Как только начинается гуи начинаются глюки

Evgeny
26.03.2018
12:20:17
Я каждый день работаю с утра до вечера на центоси. Я вот прямо сейчас сижу в ней и пишу в группу.

Maxim
26.03.2018
12:20:43
Как пользователь Kubuntu в качестве домашней ос с девятилетним стажем и пользователь Win7 в качестве рабочей ос, могу сказать, что по стабильности они практически сравнялись

Evgeny
26.03.2018
12:20:51
Были вот такие тормоза когда запускал компиляцию проектика. Потом сделал 16Гб оперативы и забыл о тормозах.

Dark
26.03.2018
12:21:09
А я пишу с арча и i3wm. Глюков не вижу

Google

Evgeny
26.03.2018
12:21:27
Виснут отдельные приложения, сама система не глюкавая

Maxim
26.03.2018
12:21:42
в Kubuntu только два перманентных бага, которые, кажется, останутся на всю жизнь: слетающий Plymouth, когда юзаешь родные дрова NVidia, и фризы при копировании на USB)

Evgeny
26.03.2018
12:21:54
Косяки с гуями могут быть от кривых видеодров, с которыми в центоси не ахти.

Maxim
26.03.2018
12:22:28
при этом обновляюсь я из backports, наверняка, если бы сидел исключительно на кошерном LTS, было бы стабильнее, чем последние версии виндов

Dmitry
26.03.2018
12:22:34
Один раз падала из за acpi. Это глюки явно не уровня приложений

Evgeny
26.03.2018
12:22:54
В целом десятая виндузятина мне нравится, если не считать ее неудержимую страсть принудительно обновлятся, когда ей вздумается.
В линупсе root - истинный админ, в Windows даже будучи админом можно не суметь даже файл стереть. Меня это чудовищно бесило. Сука, я тут самый главный на этом компьютере, а вот хуй, у вас нет прав, бла-бла-бла. У админа нет прав :lol:

Dark
26.03.2018
12:25:57
Ну так в линуксе тоже нельзя стереть файл, открытый в программе, не?

Evgeny
26.03.2018
12:26:49

Dark
26.03.2018
12:27:32

Pavel
26.03.2018
12:28:07
Если root может все, то может ли он создать такой файл который сам не сможет удалить?

Evgeny
26.03.2018
12:28:29

Dark
26.03.2018
12:29:14
Только umount -R можно

Evgeny
26.03.2018
12:30:14

Oleg
26.03.2018
12:44:33

Dark
26.03.2018
12:46:16
SELinux'ы всякие

Denis
26.03.2018
13:01:50

Google

Denis
26.03.2018
13:03:02
Кстати, десктопы с ECC уже завезли?

Oleg
26.03.2018
13:08:19


Dmitry
26.03.2018
13:26:24
Продолжил я с докером разбираться. Все же куча народу считает что это дикий костыль. Вся эта изоляция оказалась лишь новой точкой отказа в которой и дыры находят критические и тд. Вот пару интересных комментов:
У фанатов докера пока не наступило отрезвление технологией, вполне нормальное состояние, когда ее пихают везде — докер сейчас там-же, где были биткоины когда за штуку баксов перевалили, остынут, останется в тестировании, в куче микросервисов, но продакшен базы в докер пихать перестанут
--
Да, "продакшен-база" в докере — это отлично. Недавно видел такое — база почти в 100 гигабайт с mysql в продакшене — и my.cnf вообще никак не настроен — как шёл в пакете дефолтный, так в продакшен и ушел.
И этого "гуру" девопса очень сильно интересовал вопрос "а как же это бекапить и как ему реплику настроить, если при рестарте контейнера меняется IP?".
На вопрос этому "гуре" — "Собственно, зачем было использовать абсолютно не нужную тут прослойку из docker?" я был зачем-то забанен с примерным reason "Я лучше знаю как мне делать, поналезли тут всякие г-ноадмины-советчики".
Докер — это отличная возможность переложить проблемы поддержания актуальных версий системных библиотек (того же самого libssl) с поставщиков ОС и сисадминов на никого.


Evgeny
26.03.2018
13:28:37
100ГБ база данных в докере - это сурово :)

Dmitry
26.03.2018
13:29:31
У нас вот в конторе тоже БД в докере. Я хз зачем. Объяснений так и не понял. Видимо логики никакой нет здравой

Evgeny
26.03.2018
13:29:51
в докер еще есть некий смысл, если потом этот контейнер будет рассыпан по сотне серверов

Dmitry
26.03.2018
13:36:05
У нас частично PCI-DSS оправдывают типа чтобы виртуальные изолированные машины не плодить, это единственный более или мене актуальный аргумент
А так как по мне Докер нужен для того чтобы говнокод запускать. Нормальное приложение не должно пол системы засирать и ломать, чего так боятся фанаты докера.

Evgeny
26.03.2018
13:44:59
впрочем поф

Oleg
26.03.2018
14:34:18
раньше считал, что докер это нечто, что использует ядро основной системы, просто разграничивая доступ (из контейнера наружу не обратиться)

Oleg
26.03.2018
14:34:31
но тут недавно совсем узнал, что докер можно под win
там оно как работает?

Pavel
26.03.2018
14:35:03
так же, просто в win припилили сбоку ядро линукса
Они там начали интегрироваться более плотно

Oleg
26.03.2018
14:35:27
ну типа полноценная виртуализация?

Pavel
26.03.2018
14:36:06
Не знаю точно, но никакой магии там нет. Как-то они запускают линукс параллельно основному ядру и уже на основе него строят сервисы и докеры
Может и да, какая-то изолированная среда

Oleg
26.03.2018
14:36:44
да понятное дело, что магии нет, получается что просто под win будет чуть больше ресурсов отжираться

Google

Pavel
26.03.2018
14:37:06
да вероятно
Но это как правило нужно чтобы разработчику у себя локально поднять проект, врядли кто-то будет крутить докер под виндой в хайлоаде

Oleg
26.03.2018
14:38:09

Pavel
26.03.2018
14:40:47
лоло я сейчас посмотрел и оказывается debian dlang.ru походу как-то запущен в винде ))
root@debian:~# dmidecode | egrep -i 'manufacturer|product'
Manufacturer: Microsoft Corporation
Product Name: Virtual Machine
https://unix.stackexchange.com/questions/89714/easy-way-to-determine-virtualization-technology
Так, вопрос на миллион, насколько хорош подход, когда в сетевом демоне разные асинхронные таски или треды общаются между собой с помощью посылки сообщений, а не просто вызовами каких-то методов у объектов?

Igor
26.03.2018
14:59:48
Внутри треда дешевле общаться вызовом. Сообще
Сообщения между тредами тоже не магия
Очередь плюс condvar

Admin
ERROR: S client not available

Igor
26.03.2018
15:02:52
То есть внутри треда я бы делал прямые вызовы или отправку нотифаев через eventloop

Pavel
26.03.2018
15:03:16

Igor
26.03.2018
15:05:23
Тогда нужно смотреть какие он даёт средства. Не могусказать

Pavel
26.03.2018
15:05:35
И возвращаясь опять к моей модели - есть главный task Application и есть порожденные таски Worker. Если надо из воркера вызывать метод Application.smth() то надо будет класс Application пробрасывать в worker как зависимость, решать проблемы shared, копирования Application в TLS и т.д. как-то очень замудрено выходит. А вот просто послать из треда в главный сообщение через send!(blabla) выглядит хорошо
А в Application уже будет бесконечный цикл получения сообщений. Получили "smth" -> пошли вызвали this.smth() и результат отправили куда-нибудь в ответную очередь. Никаких shared, все прозрачно.

Stanislav
26.03.2018
15:13:51
а из вайба то сам евентлуп будет где крутится?

Pavel
26.03.2018
15:20:56
Хороший вопрос, я туда не копал но он магически крутится везде ) Мне кажется если запускать таску через runWorkerTask() то там она тоже будет работать со своим евент лупом.
емнип там один евент луп на каждый тред запускается

Stanislav
26.03.2018
15:23:22
хм, а мне почему то думается евентлуп крутится там где запустил через runEventLoop (или runApplication), а runWorkerTask просто в отдельном треде запускает таску

Google

Pavel
26.03.2018
15:30:01
Главное что прямой вызов метода из чужеродного объекта сразу дает кучу проблем с TLS и шаредами

Igor
26.03.2018
15:32:52
да, именно


Stanislav
26.03.2018
15:39:06
лучше скажите что делать, если стыдно?
auto r_ipv6 = address.split( ":" );
if( r_ipv6.length == 8 )
{
if( r_ipv6.map!( a => to!ushort( a, 16 ) ).array()[ 0..6 ] == [ 0,0,0,0,0,0xFFFF ] )
{
this.stack = Stack.IPV4;
this.ipv6_address[ 0 .. 2 ] = r_ipv6.map!( a => to!ushort( a, 16 ).swapEndian!ushort ).array()[ 6 .. 8 ];
}
else
{
this.stack = Stack.IPV6;
this.ipv6_address = r_ipv6.map!( a => to!ushort( a, 16 ) ).array();
}
return;
}
чувствую я где-то не туда свернул )
это чтобы определить по ipv6 адресу что это ipv4 и привести его к ipv4 виду
я даже в шоке что оно вообще работает.. че подскажете?)
IPV6_V6ONLY
If set to 1, AF_INET6 wildcard listening socket will accept IPv6 traffic only. If set to 0, it will accept IPv4 traffic as well, as if it was from IPv4 mapped address like ::ffff:10.1.1.1. Note that if you set it this to 0, IPv4 access control gets much more complicated.
блин, может issue накать в вайб-коре. а то реально не оч понятно как с этим работать


Denis
26.03.2018
16:13:38

Stanislav
26.03.2018
16:21:51
ну смотри, у тебя есть пачка ipv4 и ipv6 адресов. тебе надо коннекты с них принимать. задаются они где-то в конфиге. тебе прилетел коннект - тебе надо проверить, он из списка пиров твоего или нет.
тупо переделать все в mapped формат я не могу - во первых эти ipv4 адреса мне нужны будут еще (не переделывать же их потом обратно в ipv4 формат), а во вторых это наглядней когда они в ipv4 виде.
надо еще покопать исходники vibe-core
сам vibe-core пытается 2 слушающих сокета создать, на v4 и v6, но почему то на макоси если уже создан v6 - то он просто его юзает и не дает v4 создать

Evgeny
26.03.2018
16:48:24

Pavel
26.03.2018
16:54:54
где то я даже помню текст что работать между тредами через посылку сообщений это более рекомендуемый путь чем через shared и всякие мьютексы
прямо в dlang tutorial

Stanislav
26.03.2018
16:55:33
в книге александреску тоже
особенно учитывая сложности реализации лок-фри алгоритмов
блин, конеш вайб-коре удивляет.
он плюет на socket options которые ты передаешь)

Pavel
26.03.2018
16:57:41
?
так там и буфер для получения данных выделяется всегда фиксированный 4кб. Даже если ты собрался видео в хайрезе перекачивать.

Stanislav
26.03.2018
17:00:38
я думал щас в енум значит добавлю просто этот флаг ipv6_v6only ага, конечно

Evgeny
26.03.2018
17:08:49

Dmitry
26.03.2018
17:14:21

Stanislav
26.03.2018
17:18:09
да, можно выключить это поведение. но по хорошему надо перед тем как биндить сокет передать ему явно эту опцию.
в принципе уже поправил в eventcore, теперь создается только v6only сокет (посмотрел через netstat)
но почему то теперь на том же порту не создается ipv4 сокет

Denis
26.03.2018
17:30:39