На сайтах можно сделать точно такую же монетизацию что и в приложениях (то что многие боятся это делать потому что сайты были раньше и без монетизации уже другая история). Идея на то и идея что ее невозможно навязать технически. WWW был свободен отнюдь не потому что его нельзя сделать несвободным.
Согласен, я имел в виду что современные асинхронные подходы сами по себе не решают подобных проблем с производительностью. Если ты запускаешь 10 тысяч мелких асинхронных операций из ui треда которые потом возвращаются в обратно в ui тред то не имеет значения какой подход используется - самописанные очереди сообщений, async/await, джавовские экзекуторы - это приведет к тем же проблемам.
Асинхронные вызовы точно также приведут к обмену сообщениями между потоками (если команды на чтение файлов приходят из ui треда) - просто это будет происходить "под капотом". Никакой магии в них нет.
Microsoft для интеропа продвигает WinRT (ребрендинг COM). Там биндинги генерируются автоматически из winmd файлов с описанием классов и функций (https://learn.microsoft.com/en-gb/uwp/winrt-cref/winmd-files). Можно написать библиотеку на C++ и использовать ее из C# или наоборот. Для Rust это вроде как тоже поддерживается.
Большая часть новых высокоуровневых api Windows (например класс для доступа к цвету который пользователь выбрал в настройках Windows) доступны именно через WinRT и не входят в Win32 API.
WinUI можно и из плюсов использовать (и возможно из раста т.к. к нему тоже прикрутили WinRT через который работает интероп). Но учитывая что они сами недавно переписали магазин приложений с плюсов на C# я не думаю что этим весело заниматься.
А в чем проблема делать это на стороне библиотечного кода? Библиотека на то и библиотека что у нее нет информации о контексте и о том как ее используют. Например в котлине считается что библиотечную корутину должно быть можно запускать на любом треде/диспетчере, а она сама уже разберётся что ей нужно:
suspend fun loadAndParseJson(): Json {
val bytes = withContext(Dispatchers.IO) {
// IO is for blocking I/O
// Reading from file
}
val json = withContext(Dispatchers.Default) {
// Default is for computations
// Parsing data
}
return json
}
Ютуб - одна из крупнейших платформ для российской пропаганды, как и телеграм. Многие "потребители" этого контента, внезапно, телевизор не смотрят и "потребляют" его через интернет. Так что пока хозяева этих ресурсов не введут запрет на росс. пропагандистский контент (который действительно будет соблюдаться), блокировать их не будут - это принесет больше "вреда" чем "пользы".
Согласен. Недавно искал ECC память для домашнего пк, а там важно знать что такое UDIMM и RDIMM и почему в большинстве магазинов банально нет нужной информации о том что это за память.
Насколько я помню в образах последних версий винды файл install.wim больше 4 гб (в последнем официальном образе 10 винды - 5 162 828 812 байт). Так что просто так распаковать на fat32 не получится.
Есть SpaceEngine. Его правда игрой назвать сложновато (хотя космические корабли есть) но автор не теряет надежды что когда-нибудь доберется до создания геймплея.
Привязка сертификата к доменному имени позволяет менять ip адрес сервера как угодно, и соответственно переносить сервер без ограничений. Прибитие сертификата гвоздями к ip соответственно это ограничивает. Плюс из-за того что такие сертификаты используются редко повышаются шансы встречи с багами в реализациях TLS. Например, насколько я знаю, винда до 10 версии их обрабатывала неправильно.
Хотя конечно странно что нет такой возможности в контексте DNS. systemd-resolved, например, требует указывания как ip адреса так и доменного имени для верификации сертификата (или только ip если сертификат без домена).
Андроид, вероятно, просто резолвит адрес dns сервера через публичный dns гугла с захардкоженным в систему ip и доменом.
Эта настройка в Андроиде поддерживает только шифрованные протоколы. Вероятно, Гугл решил что никто из днс провайдеров не будет в здравом уме использовать tls сертификаты привязанные к ip адресу.
Насколько я знаю, wstring в плюсах используется для unicode строк, а string для ASCII строк
Не совсем верно (а точнее, совсем не верно). string и wstring никакого отношение к кодировкам и символам не имеют. Это просто массив байтов (char) либо значений wchar_t. То, в какой кодировке закодированы (простите) эти байты (или значения wchar_t если кодировка это позволяет) зависит только от того как вы их используете (их содержимое также может в принципе не быть текстом).
Например, если вы получаете пользовательский ввод от системы в виде байтов и сохраняете его в string, то ее кодировка будет зависит от системы и ее конфигурации. На юниксах обычно будет UTF-8, а на windows локальная 8-битная кодировка (например CP-1251). Но в обоих случаях возможны любые варианты.
Более того wchar_t на разных платформах имеет разный размер так что wstring в принципе имеет смысл использовать только коде завязанном на windows.
Также по этой причине wstring нельзя использовать для java String в кросс-платформенном JNI коде потому что размер jchar фиксирован (16 бит) а wchar_t - нет.
На сайтах можно сделать точно такую же монетизацию что и в приложениях (то что многие боятся это делать потому что сайты были раньше и без монетизации уже другая история). Идея на то и идея что ее невозможно навязать технически. WWW был свободен отнюдь не потому что его нельзя сделать несвободным.
Согласен, я имел в виду что современные асинхронные подходы сами по себе не решают подобных проблем с производительностью. Если ты запускаешь 10 тысяч мелких асинхронных операций из ui треда которые потом возвращаются в обратно в ui тред то не имеет значения какой подход используется - самописанные очереди сообщений, async/await, джавовские экзекуторы - это приведет к тем же проблемам.
Асинхронные вызовы точно также приведут к обмену сообщениями между потоками (если команды на чтение файлов приходят из ui треда) - просто это будет происходить "под капотом". Никакой магии в них нет.
Странно, у меня при компиляции с C++11 (GCC 6.3.1) это все равно int.
А вообще, что им мешало сделать так:
Заодно это решило бы проблему невозможности в некоторых случаях вызова конструктора копирования при использовании универсальной™ инициализации.
Microsoft для интеропа продвигает WinRT (ребрендинг COM). Там биндинги генерируются автоматически из winmd файлов с описанием классов и функций (https://learn.microsoft.com/en-gb/uwp/winrt-cref/winmd-files). Можно написать библиотеку на C++ и использовать ее из C# или наоборот. Для Rust это вроде как тоже поддерживается.
Большая часть новых высокоуровневых api Windows (например класс для доступа к цвету который пользователь выбрал в настройках Windows) доступны именно через WinRT и не входят в Win32 API.
WinUI можно и из плюсов использовать (и возможно из раста т.к. к нему тоже прикрутили WinRT через который работает интероп). Но учитывая что они сами недавно переписали магазин приложений с плюсов на C# я не думаю что этим весело заниматься.
У markdown тот же фатальный недостаток что и у .ini/.conf - у каждого он свой.
Я дочитал до интерполяции строк...
Звонки из военкомата определять умеет?
А в чем проблема делать это на стороне библиотечного кода? Библиотека на то и библиотека что у нее нет информации о контексте и о том как ее используют. Например в котлине считается что библиотечную корутину должно быть можно запускать на любом треде/диспетчере, а она сама уже разберётся что ей нужно:
Ютуб - одна из крупнейших платформ для российской пропаганды, как и телеграм. Многие "потребители" этого контента, внезапно, телевизор не смотрят и "потребляют" его через интернет. Так что пока хозяева этих ресурсов не введут запрет на росс. пропагандистский контент (который действительно будет соблюдаться), блокировать их не будут - это принесет больше "вреда" чем "пользы".
Согласен. Недавно искал ECC память для домашнего пк, а там важно знать что такое UDIMM и RDIMM и почему в большинстве магазинов банально нет нужной информации о том что это за память.
Насколько я помню в образах последних версий винды файл install.wim больше 4 гб (в последнем официальном образе 10 винды - 5 162 828 812 байт). Так что просто так распаковать на fat32 не получится.
Есть SpaceEngine. Его правда игрой назвать сложновато (хотя космические корабли есть) но автор не теряет надежды что когда-нибудь доберется до создания геймплея.
Как это работает с конфликтами анонимных неймспейсов и static функций/переменных?
+ официальное vscode расширение с LSP сервером C# недавно стало еще более проприетарным.
Привязка сертификата к доменному имени позволяет менять ip адрес сервера как угодно, и соответственно переносить сервер без ограничений. Прибитие сертификата гвоздями к ip соответственно это ограничивает. Плюс из-за того что такие сертификаты используются редко повышаются шансы встречи с багами в реализациях TLS. Например, насколько я знаю, винда до 10 версии их обрабатывала неправильно.
Хотя конечно странно что нет такой возможности в контексте DNS. systemd-resolved, например, требует указывания как ip адреса так и доменного имени для верификации сертификата (или только ip если сертификат без домена).
Андроид, вероятно, просто резолвит адрес dns сервера через публичный dns гугла с захардкоженным в систему ip и доменом.
Эта настройка в Андроиде поддерживает только шифрованные протоколы. Вероятно, Гугл решил что никто из днс провайдеров не будет в здравом уме использовать tls сертификаты привязанные к ip адресу.
Не совсем верно (а точнее, совсем не верно). string и wstring никакого отношение к кодировкам и символам не имеют. Это просто массив байтов (char) либо значений wchar_t. То, в какой кодировке закодированы (простите) эти байты (или значения wchar_t если кодировка это позволяет) зависит только от того как вы их используете (их содержимое также может в принципе не быть текстом).
Например, если вы получаете пользовательский ввод от системы в виде байтов и сохраняете его в string, то ее кодировка будет зависит от системы и ее конфигурации. На юниксах обычно будет UTF-8, а на windows локальная 8-битная кодировка (например CP-1251). Но в обоих случаях возможны любые варианты.
Более того wchar_t на разных платформах имеет разный размер так что wstring в принципе имеет смысл использовать только коде завязанном на windows.
Также по этой причине wstring нельзя использовать для java String в кросс-платформенном JNI коде потому что размер jchar фиксирован (16 бит) а wchar_t - нет.