Решение дотнета в данном случае предпогалает, что функционал потока может меняться в рантайме, поэтому статические проверки здесь не подойдут.
Именно так. Функционал потока может измениться прямо в процессе работы. Например, сокет можно зашатдаунить только в одном направлении, и он резко из IReadableWritable становится или IReadable, или IWritable. Можно зашатдаунить в обоих направлениях - какой у него в этом случае должен быть тип?
Ну вот смотрите: у Stream могут быть интерфейсы: IReadableStream, IWritableStream, ISeekableStream, IBufferedStream, IAsyncReadableStream. IAsyncWritableStream, которые могут быть по-разному скомбинированы. А ешё это может быть какой-нибудь NetworkStream со своими интерфейсами.
Ну да, можно обмазаться дженериками и писать что-то типа:
void MyMethod<TStream>(TStream stream) where TStream : IReadableStream, IAsyncReadableStream, IBufferedStream, ...
Но это реально уродство получается, ещё и ограничениями, потому что нельзя перегружать функции с одниаковыми сигнатурами, но разными трайтами. Куда проще просто один if внутри функции воткнуть.
Я ещё нехило так увидился, когда в nvtop посмотрел на потребление видеопамяти (для нейросеток это критично): XFce отжирает значительно больше видеопамяти, чем Plasma.
А мне поведение с переключением раскладки по нажатию Alt+Shift в Linux, а не по отпусканию в винде, наоборот, нравится больше, и я бы очень не хотел, чтобы этот "баг" фиксили.
В винде при быстром наборе текста постоянно раскладка не переключается, и это ужасно бесит. В линуксе же переключение железное, за пару лет активного использования линукса на десктопе проблемы непереключения раскладок не случилось ни разу. Конфликтов с шорткатами не имею.
После того, как суды начали отказывать операторам в исках по миллиону рублей, и был внесён законопроект, который предусматривает, что абонент российского сотового оператора не может задолжать оператору за услуги в роуминге более 3 тысяч рублей в месяц, внезапно оказалось, что обновление баланса в роуминге вполне себе возможно и реальном времени.
Во, я то же самое делал, только наоборот, пережимал файлы с телефона/фотоаппарата в hevc с пресетом пожёстче для уменьшения размера. И ещё была команда в меню для архивации директории в sqfs.
В far2l можно нажать Ctrl+O, а затем F3 — и вся длинная выдача (включая историю) откроется в стандартном просмотрщике far, да ещё и сохранением подсветки. А по F4 ещё и в редакторе откроется.
Это, кстати, для меня одна из киллер-фич far2l, которой нет в виндовом far.
У меня универсальность ассоциируется ещё и с покрытием кейсов, для которых используются узкоспециализированные языки.
Стандартная бибилиотека как раз std::string предоставляет. Но разработчики библиотек используют кто во что горазд, потому что C++ не принуждает к использованию только стандартной библиотеки.
И это пример того, что случится с любым языком, претендующим на универсальность. Он тупо окажется слишком сложным, и люди будут пользоваться лишь небольшим его подмножеством.
В линейном городе тоже будут и пересадки, и пробки, потому что люди пока не научились садиться и выходить в движущийся на большой скорости транспорт.
Высокая скорость передвижения возможна только при малом числе остановок. Но когда остановок мало, расстояние до останавок получается большим, и нужна дублирующая ветка с частными остановками.
То же самое касается и автомобильных дорог. Если на автобане сделать по съезду каждые 100 метров, то скорость на нём быстро станет черепашьей.
Это как раз следствие низкой плотности населения и как следствие, низкого спроса на ОТ. В городе же не успел на метро - следующий поезд через 2 минуты.
скажете что типа "тут город, а ты деревню приводишь в пример"...так размер мегаполиса и так огромный..
Ну так и вы сравнивайте деревню того же размера. Сколько площади будет занимать деревня с населением 10-15 млн человек?
Вот как пример можно Сербию взять - население в 2 раза меньше Москвы, плотность населения 100 чел/км2 (как раз нижняя граница субурбии). Но вот дорога из одного конца в другой занимает 500 км.
т.е. при неудачных маршрутах можно часа по 2-3-4 тратить на дорогу с пересадками
Ну вот я возле шоссе жил. Дойти до рынка на противоположной стороне шоссе - 5 минут, доехать на личном авто - 15 минут, если не рисковать на 5000 рублей штрафа.
А жена не работает, получается, что может вот так папу подменить?
К примеру, я искренне сомневаюсь что есть города, где в каждом районе есть паркур
Так это и к субурбии относится. Только за счёт более низкой плотности населения до паркура добираться ещё дальше. Вместо 15 минут на ОТ или вообще, о ужас, велосипеде, получаем 30 минут на автомобиле.
Дальше вопрос, куда девать сумку с ноутом? Брать в раздевалку - такое. Кто-то упал, она упала, не всегда в залах раздевалки закрываются, и т.д. Короче риск либо потерять, либо сломать
А из автомобилей не воруют, получается? Я, наоборот, ценные вещи всегда беру с собой.
Дальше как? У меня по прежнему две сумки.
Представьте себе, спрос рождает предложение. Если у 90% людей в городе не будет автомобиля, то те же камеры хранения будут это учитывать.
Но в целом, я вас понял. У вас просто сформировался определённый образ жизни и формат потребления, завязанный на использование автомобиля. Точно так же формируется образ жизни у людей, живущих в сверхплотных городах, и они точно так же будут не понимать, как можно жить по-другому.
После трени, особенно в начале сезона, когда идет работа над физухой вообще классно куда-то переться с вещами, вместо того чтобы тихо сползти на водительское сиденье и неспеша катить.
А ещё удобнее катить на пассажирском сиденье, не отвлекаясь на вождение вообще. Если мы обсуждаем именно города будущего, то транспорт там должен быть беспилотным.
Если живёшь в частном секторе, то из-за низкой плотности населения выбор активностей получается ограничен. В 10-миллионном городе выбор как-то побогаче будет, чем в 100-тысячной субурбии (на самом деле не два порядка разница, но принцип вы поняли).
Конный клуб и стрельбище. Ферма, где продаётся крольчатина. И всё. Хочется чего-то особого? А до него ехать 50 км.
А почему вы не учитываете время, которое тратите на перемещение на автомобиле между теми же самыми точками?
А если магаз хлебом торгует, то пекарня в 50 метрах умрет очень скоро, так как проще хлеб вместе с колбасой в магазине покупать, а не ходить два раза.
Но если в пекарне хлеб вкуснее, то люди будут после магазина заходить ещё и в пекарню. Конкуренция — это благо.
Ну и даже в гиперах не всё есть. За крольчатиной вполне себе придётся и в другое место съездить.
Поэтому неизбежно "шаговая доступность" будет означать "куча народу вокруг", так как она "шаговая" должна быть не только для вас, а для всех потенциальных клиентов пекарни.
Ну да, собственно, повышение плотности населения и есть цель подобного урбанизма.
а еще и по 40 этажей 20-метровых собачьих будок
А самое смешное, что люди в них селятся добровольно. Видимо, в жизни в них есть ещё и плюсы, которые перевешивают всё остальное.
Зато все на общественном транспорте, а чтобы еще больше всех на ОТ мотивировать, можно парковки вообще убрать.
Не на общественном транспорте, а пешком. Парковки — строго подземные.
Именно так. Функционал потока может измениться прямо в процессе работы. Например, сокет можно зашатдаунить только в одном направлении, и он резко из IReadableWritable становится или IReadable, или IWritable. Можно зашатдаунить в обоих направлениях - какой у него в этом случае должен быть тип?
Ну и чего там хорошего? Прямо в IOBase есть:
fileno - может бросить исключение, а может и не бросить;
isatty - то есть это реализовано не через интерфейс, а флажком;
readable, seekable - всё как в C# (CanRead, CanSeek);
Ну вот смотрите: у Stream могут быть интерфейсы: IReadableStream, IWritableStream, ISeekableStream, IBufferedStream, IAsyncReadableStream. IAsyncWritableStream, которые могут быть по-разному скомбинированы. А ешё это может быть какой-нибудь NetworkStream со своими интерфейсами.
Ну да, можно обмазаться дженериками и писать что-то типа:
void MyMethod<TStream>(TStream stream) where TStream : IReadableStream, IAsyncReadableStream, IBufferedStream, ...
Но это реально уродство получается, ещё и ограничениями, потому что нельзя перегружать функции с одниаковыми сигнатурами, но разными трайтами. Куда проще просто один if внутри функции воткнуть.
Короче, баланс разумного должен быть.
Вы путаете неспособность принимать новое с желанием принимать неудобное.
Я ещё нехило так увидился, когда в nvtop посмотрел на потребление видеопамяти (для нейросеток это критично): XFce отжирает значительно больше видеопамяти, чем Plasma.
А мне поведение с переключением раскладки по нажатию Alt+Shift в Linux, а не по отпусканию в винде, наоборот, нравится больше, и я бы очень не хотел, чтобы этот "баг" фиксили.
В винде при быстром наборе текста постоянно раскладка не переключается, и это ужасно бесит. В линуксе же переключение железное, за пару лет активного использования линукса на десктопе проблемы непереключения раскладок не случилось ни разу. Конфликтов с шорткатами не имею.
После того, как суды начали отказывать операторам в исках по миллиону рублей, и был внесён законопроект, который предусматривает, что абонент российского сотового оператора не может задолжать оператору за услуги в роуминге более 3 тысяч рублей в месяц, внезапно оказалось, что обновление баланса в роуминге вполне себе возможно и реальном времени.
Что совершенно не мешало его акциям расти. Вот инвесторы-то тупые, правда?
Во, я то же самое делал, только наоборот, пережимал файлы с телефона/фотоаппарата в hevc с пресетом пожёстче для уменьшения размера. И ещё была команда в меню для архивации директории в sqfs.
Как минимум, удобно, когда в разных ОС используется один и тот же инструмент. Не нужно привыкать к разным хоткеям и функционалу.
В far2l можно нажать Ctrl+O, а затем F3 — и вся длинная выдача (включая историю) откроется в стандартном просмотрщике far, да ещё и сохранением подсветки. А по F4 ещё и в редакторе откроется.
Это, кстати, для меня одна из киллер-фич far2l, которой нет в виндовом far.
У меня универсальность ассоциируется ещё и с покрытием кейсов, для которых используются узкоспециализированные языки.
Стандартная бибилиотека как раз
std::string
предоставляет. Но разработчики библиотек используют кто во что горазд, потому что C++ не принуждает к использованию только стандартной библиотеки.И это пример того, что случится с любым языком, претендующим на универсальность. Он тупо окажется слишком сложным, и люди будут пользоваться лишь небольшим его подмножеством.
Парки надо строить и возле домов, и подальше от них. Просто кому хочется именно пошуметь, будут вынуждены идти в парк подальше.
В линейном городе тоже будут и пересадки, и пробки, потому что люди пока не научились садиться и выходить в движущийся на большой скорости транспорт.
Высокая скорость передвижения возможна только при малом числе остановок. Но когда остановок мало, расстояние до останавок получается большим, и нужна дублирующая ветка с частными остановками.
То же самое касается и автомобильных дорог. Если на автобане сделать по съезду каждые 100 метров, то скорость на нём быстро станет черепашьей.
Это как раз следствие низкой плотности населения и как следствие, низкого спроса на ОТ. В городе же не успел на метро - следующий поезд через 2 минуты.
Ну так и вы сравнивайте деревню того же размера. Сколько площади будет занимать деревня с населением 10-15 млн человек?
Вот как пример можно Сербию взять - население в 2 раза меньше Москвы, плотность населения 100 чел/км2 (как раз нижняя граница субурбии). Но вот дорога из одного конца в другой занимает 500 км.
Ну вот я возле шоссе жил. Дойти до рынка на противоположной стороне шоссе - 5 минут, доехать на личном авто - 15 минут, если не рисковать на 5000 рублей штрафа.
Глядя на то, как популярна продукция Apple, уверен, что люди с восторгом примут и эту идею.
А жена не работает, получается, что может вот так папу подменить?
Так это и к субурбии относится. Только за счёт более низкой плотности населения до паркура добираться ещё дальше. Вместо 15 минут на ОТ или вообще, о ужас, велосипеде, получаем 30 минут на автомобиле.
А из автомобилей не воруют, получается? Я, наоборот, ценные вещи всегда беру с собой.
Представьте себе, спрос рождает предложение. Если у 90% людей в городе не будет автомобиля, то те же камеры хранения будут это учитывать.
Но в целом, я вас понял. У вас просто сформировался определённый образ жизни и формат потребления, завязанный на использование автомобиля. Точно так же формируется образ жизни у людей, живущих в сверхплотных городах, и они точно так же будут не понимать, как можно жить по-другому.
А ещё удобнее катить на пассажирском сиденье, не отвлекаясь на вождение вообще. Если мы обсуждаем именно города будущего, то транспорт там должен быть беспилотным.
Совершенно верно — вопрос в плотности населения.
Если живёшь в частном секторе, то из-за низкой плотности населения выбор активностей получается ограничен. В 10-миллионном городе выбор как-то побогаче будет, чем в 100-тысячной субурбии (на самом деле не два порядка разница, но принцип вы поняли).
Конный клуб и стрельбище. Ферма, где продаётся крольчатина. И всё. Хочется чего-то особого? А до него ехать 50 км.
Поэтому да, место проживания определяет хобби.
А почему вы не учитываете время, которое тратите на перемещение на автомобиле между теми же самыми точками?
Но если в пекарне хлеб вкуснее, то люди будут после магазина заходить ещё и в пекарню. Конкуренция — это благо.
Ну и даже в гиперах не всё есть. За крольчатиной вполне себе придётся и в другое место съездить.
Ну да, собственно, повышение плотности населения и есть цель подобного урбанизма.
А самое смешное, что люди в них селятся добровольно. Видимо, в жизни в них есть ещё и плюсы, которые перевешивают всё остальное.
Не на общественном транспорте, а пешком. Парковки — строго подземные.