ЕМНИП "в лоб" чего-то типа check: IsSelected в uninstall нет - то бишь придется вспомнить паскаль и написать немного кода... хотя могу и ошибаться и проскочит и штатно
Ну как минимум подозрительное место стоило бы максимально развернуть на элементарные части (вплоть до разворачивания в forEach). И все-таки обернуть в try-catch и в пошаговом режиме отловить место возникновения exception.
Дмитрий, даже закварцевав можно получить трупик, который просто механически разнесло разными температурными коэффициентами расширения платы и корпусов микросхем, а пайки уже раздолбаны вибрациями... не зря автомотив юзает обжим и сварку проводов, а не пайку...
Но тут боярышник vs инженерный подход - знакомый жеж на драйве похвалился конструкции на монтажке )
Я скорее к повторному входу - если чел зашел и выбрал хинди - многовероятно при повторном входе он захочет видеть тоже хинди...
Естественно возможны ситуации что это у него просто дрогнула рука и визуально должен быть доступен сброс на более популярный/основной язык...
А так - можно принимать исходное автоматическое решение:
- на основе геоданных, но... в Канаде, да и не только - двуязычие, люди пользуются vpn/tor/прокси
- на основе данных о локали хоста, но опять же корпоративный бук может быть с корпоративным по с "неродными" для юзера локалями (или интернет-кафе в труции где за комп сел русский турист... после немецкого, или у меня в русской 10 при песочница запускается с usa-локалью)
- другие варианты - примерно с той же точностью...
Александр Лыкасов, мне тоже. Притом в большей части сред не затрагивая табулированный код я могу отобразить для себя по своему вкусу, вплоть до быстрого переключения при перекидывании между мониторами. А вот кастомизировать под себя "пробелированный" - только изменив его.
Правда кака получится с кодом, который частично писан адептами пробелов, а частично - табов)
Немец, гостящий в Париже - может предпочесть немецкий. Так что после ручного выбора языка может/должен остаться след (куки например), который в след раз стоит учесть при выборе. Ну и в корпоративном секторе нередки ситуации, когда например русскоговорящие сотрудники пользуются брендированными буками централизованной поставки через головную немецкую компанию...
Сергей Горностаев, а на следующем шаге - остановить для переделки на лучшее = грохнуть продажи, плюс консервативность аудитории. Притом второе тоже немаловажно.
А самое главное - юзабилити. Думаю все сталкивались например с отсутствием важных для конкретных категорий товаров фильтров на общеторгашеских сайтах (красненький vs версия hdmi например))
lamer350, это уже частности. Общая суть, что практически любая современная ос умеет динамически конфигурировать буфера (кэш) в зависимости от общего объема свободной памяти. То же самое делают и многие приложения тем или иным образом.
p/s/ ретроспективно: Photoshop 3.0.4 вполне осиливал большие tiff под хорошую полиграфию даже с 4-8Мб ОЗУ... хотя расширение до 16Мб повышало комфорт... Хотя общие расчеты приводили к более серьезным потребностям уровня 4-5 кратного размера развернутого растра (4 краски * 300...600 dpi - можно посчитать)
И да, я не опечатался в единицах измерения - мегабайт (а не не гигабайт памяти))))
Сейчас вот так показывает, в среднем у меня 11 гб занято.
При 32Гб - будет занято 25..28Гб и так будет примерно всегда)
Когда памяти совсем мало - все программы и кэши ужимаются и производительность падает из-за манипуляций со свопом. При увеличении памяти система начинает дышать свободнее. То есть до некоторой точки с увеличением памяти увеличивается производительность (отзывчивость, мягкость работы) системы. Потом рост производительности становится малозаметным - можно считать что достигнут некий оптимум объема памяти.
Но... чуть позже растут аппетиты пользователя (докеры, вирталки, более навороченные IDE) и начинается новый цикл...
С учетом специфики apple - циклов наращивания памяти почти что нет... То есть выкинуть/продать старый бук и купить новый. Посему изначальное приобретение с памятью на "вырост" позволит несколько растянуть срок полезного использования бука)
Проекты бывают разные. Некоторые - достаточно долгоживущие и универсальные.
Вот даже у меня перед глазами есть относительно старые поддерживаемые проекты и их новые дети и внуки... Так вот часть зарекомендовавшей себя кодовой базы обрастает как раз новыми, но и не ампутирует старые. По вполне очевидным причинам.
Да и суть - то исходно была в той самой буковке "s" (TargetFrameworks)
Василий Банников, ну если делается nuget пакет с потугами на библиотечность - то именно так это и выглядит: пара-тройка стандартов, пяток версий фреймворка ну и net5)
К примеру, если заглянуть в пакет модного NewtonSoftJson, то увидим в lib
net20
net35
net40
net45
netstandard1.0
netstandard1.3
netstandard2.0
portable-net40
portable-net45
и, кстати, пока еще не увидим net5.0 )
А вот мультитаржет или же framework-scecific projects - тут уже зависит на какую глубину зарываются в специфику конкретных фреймворков