Pull to refresh

Comments 591

Ответа на вопрос поста нет =))
Может, всё же в данном случае это «почему» а скорее в формате «Ну зачем?»
Пост — вообще скрытая реклама far manager / total commander :-)
Да ну — кроме них есть ещё куча разных файловых менеджеров )
Но от других Far отличается отсутствием графики, т.е. быстрее отображает большое количество файлов, потребляя при этом меньше ресурсов. Работает в Nano Server.
Ещё ZTreeWin, например, тоже не графический и быстрый и ресурсосберегающий.
Вы шутите, наверное?
В полноэкранном режиме — возможно, а в окне — оно под капотом всё равно графика, хоть и выглядит как эмуляция консольного режима.

Я чего-то не понимаю в сортах винд, наверное? :(
Отнюдь. Скопировано из оконного фара. К сожалению, выбрать шрифт Courier нельзя.
╔══════ D:\temp ═════╗
║x Name │ Name ║
║… │ ║
╟─────────┴──────────╢
║. Up 12.09.19 16║
╚ 0 (0/0) ═══ 147 G ═╝
UFO just landed and posted this here
Да, консоль эмулируется, но под неё используется один раз отрисованный шрифт, нет большого количества уникальных иконок. В итоге затраты на отображение папки с большим количеством файлов существенно меньше.
Именно так, спасибо за формулировку.
╔══════ D:\temp ═════╗
║x Name   │ Name     ║
║…        │          ║
╟─────────┴──────────╢
║. Up     12.09.19 16║
╚ 0 (0/0) ═══ 147 G ═╝
Это ж консоль, один в один cmd. Оно и выводит туда обычные символы. Оно, конечно, не текстовый режим монитора, но и не совсем графический.
╔═══════════════ C:\Program Files\Git ═══════════════╗
║x         Name           │           Name           ║
║..                       │                          ║
║bin                      │                          ║
║cmd                      │                          ║
║dev                      │                          ║
║etc                      │                          ║
║mingw64                  │                          ║
║tmp                      │                          ║
║usr                      │                          ║
║unins000.dat             │                          ║
║git-bash.exe             │                          ║
║git-cmd.exe              │                          ║
║unins000.exe             │                          ║
║ReleaseNotes.html        │                          ║
║unins000.msg             │                          ║
║LICENSE.txt              │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
║                         │                          ║
╟─────────────────────────┴──────────────────────────╢
║..                               Up   21.01.19 12:06║
╚═════════ 2 920 402 (7/7) ═══ 772 771 840 ══════════╝
C:\Program Files\Git>                                 
1Help    2UserMn  3View    4Edit    5Copy    6RenMov  
Если не текстовый и не графический — то какой? :)

Под капотом оно все равно же выводит в графику.
Нет там никаких векторов. И гипертекста нету.
Если не текстовый и не графический — то какой? :)
CGA-стиль, 1981й год.

Кроме шуток, кстати: это именно то, что Windows эмулирует для программ текстового режима. Ну там, с некоторыми расширениями, Unicode, всё такое. Аттрибутов побольше (кроме 256 возможных цветов ещё допольнительно подчёркивание и другие плюшки). Но основа — как раз оттуда.

Работать с этим на порядок (а то и на два) быстрее и проще, чем с «настоящими» графическими режимами. А в графику это всё консолью преобразуется только для показа пользователю, программы это не волнует (а перерисовать картину 60 раз в секунду современные компьютеры всяко успеют).
Если смотреть дальше, то текстовый режим — это всего-лишь вариация тайлового графического режима.
Богат русский язык! В английском оба вопроса звучали бы как «Why?»
А «For what?», «What's the point?» и как минимум еще 2 вопроса вертящихся на языке.
Я бы даже сказал 'what for' — так экспрессии больше.
И, скорее всего, правильнее, если понаблюдать за использованием данной конструкции носителями языка в соответствующих ситуациях. Например, тот же «good for» — аналогичен по конструкции.

What a hell, думаю, ещё экспрессивнее, если не пойти дальше..

… это он незнания английского.
этта русский не учить

Вопрос риторический, потому и нет ответа)

Почему — корректный вопрос, зачем — нет, IMHO

Скорее всего, заголовок следовало перевести не как "Почему...?", а как "Какого Цоя...?"

Прекрасно. Напомнило про алгоритм Шлемиэля в Windows Update. Ссылку уже, к сожалению, не найду.

UFO just landed and posted this here

Это маленько не про Windows Update

Хотелось бы узнать национальность разработчика MS, написавшего подобный говнокод.
Ещё сильнее хотелось бы подвесить кое-за что разработчиков, тетсировщиков и менеджеров, ответственных за разработку оснастки просмотра логов. Почему она ВСЕГДА тормозит, даже на мощнейших машинах? Примеров много можно привести, кстати. Гнилая система контроля качества, такая же система обратной связи. Баги, несуразности, тормоза в продуктах MS не чинятся ДЕСЯТИЛЕТИЯМИ, проблемы есть у многих, что отражено на официальных форумах компании — но MS класть хотела. И ведь, что характерно, процветают! Ну, а зачем тогда напрягаться.
UFO just landed and posted this here
Причиной этому обычно служат неудачные абстракции, когда возвращает некий объект класса, который на каждый свой метод дёргает соединение с бд.

Скорее непонимание какие действия происходят за этими абстракциями.
UFO just landed and posted this here
Говнокод есть везде.
Осмелюсь заявить, что нет программиста, который хотя бы раз в жизни не коммитил говнокод, которйы потом ушел в продакшн.

Да уж, есть программисты, которым еще не приходилось коммитить говнокод в продакшен, и тем, кому уже пришлось.

Да по моему покажи любому(ок, скажем почти любому) программисту его собственный код пяти, ну или максимум десятилетней давности и первая реакция будет "это кто наговнокодил? " или что-то в этом роде :)

И это хорошо, это говорит о том что разработчик растёт

Ну почему сразу же "кто"? Как будто я не помню автора...

Ок, скажем у меня в такой ситуации обычно первая реакция "кто это наговнокодил?" и уже вторая "зачем я это наговнокодил?" :)

третья реакция — ну и дебил же я был тогда
И ты такой, «дай-ка я всё это исправлю, дай-ка я это перепишу как надо!» — бах! — и всё рухнуло. Вдруг оказывается, что этот овнокод — вынужденный, потому что по-другому, по неовнокодному, неработает!
Программист, который помнит свой код через 10 лет, вызывает подозрение…
Можно посчитать, пусть 100 строк кода в день, в месяце в среднем 22 рабочих дня за год будет 26 тыс 400 строк кода. За 10 лет 264 тыс. строк — и как такое можно запомнить.

Хотя может человек уникум и помнит каждый день своего существования начиная с возраста 1 мес…
UFO just landed and posted this here

Я обычно узнаю о том, что это мой код, через git blame. В системе контроля версий все ходы записаны

некоторые не не то что программировать, даже родной язык применять не научились… Так и «говнокодят» без применения запятых и прочих знаков препинания… А зачем эти запятые и тире? И так же всем все понятно!!!..
Вполне возможно, что код нормальный, но не оптимизирован. Ничего страшного нет, если, например, алгоритм выполняет сортировку в файле, а не в памяти, потому что раньше памяти сильно не хватало.
От этого код не становится плохим, просто он был применен в абсолютно дурацкой ситуации.

Легаси код, пронесенный сквозь десятилетия еще со времен вин для мс дос прямо в вин10, которая обновляется раз в 2 дня) звучит очень романтично. Это как вскрыть капсулу времени эпохи Гагарина) Только это остается говнокодом. Именно рациональное и обдуманное использование последовательностей символов превращает их в хороший код. Вы же не скажете, что айфон 3 — хорошая альтернатива топовым смартфонам. Так было когда-то, но сейчас это просто устаревший кирпичик)

Это — вряд ли. Как раз раньше в «тёплые ламповые времена», программеры прекрасно в большинстве своём владели основными алгоритмами ускорения вычислений. Даже школьники (вспоминаю своё детство)! Сейчас поразвелось восторженных мальчиков-программистов-мажоров, к-рые считают, что если они написали несколько тысяч строк говно-кода на каком-нибудь Питоне, то они уже супер-пупер-программеры. На вопрос о «методе пузырька» в большинстве случаев слышишь: «чаво?». А на вопрос об оптимальности кода, получаешь совершенно идиотский ответ типа «а для чего тогда оптимизирующие компиляторы существуют, ты мне ещё предложи на асме писать». В рез-те критерий кач-ва работы программера является исключительно кол-во натоптанных за день на клавиатуре строк как бы работающего кода, а мы, в рез-те, только и успеваем засылать горы денег производителям железа :(
Хуже. Количеством скопипащенных строк со стековерфлоу. И хорошо если стековерфлоу, а то разные бывают источники говнокода…
UFO just landed and posted this here
Они обычно косвенно коммитят, через других, которые заимствуют код у этих.
Неразумность не имеет ничего общего с национальностью.
Напрямую — нет. Опосредованно — через культуру.
Нравится вам это или нет.

Тогда в исходном комменте автору надо было хотеть узнать культуру, а не национальность.

Видимо, в качестве пруфов нужна какая-то статистика. Я такой не знаю. Боюсь, что и подобные исследования — независимо от результата — будут затруднительны по причине нетолерантности.

Но вообще тут всё очевидно. Если в некоей культуре не принято научное мировоззрение, а принято мракобесие — получите результат в виде дремучего народа. Ну и отсюда уже один шаг до национальности. Просто потому что определённым национальностям свойственна определённая культура.

Это НЕ причинно-следственная связь. Это грустная констатация нашей жизни — рождаясь в конкретной стране, в окружении определённой культуры, вы и будете ей воспитаны — независимо от вашей ДНК. Родитесь в каком-нибудь Сомали — не надейтесь на Нобелевку.

Может когда-нибудь — в светлом будущем — рождающиеся люди будут реально равны, независимо от географии, пола, расы, родителей. А пока — увы.
Тогда первое же следствие из «очевидного» — это тот факт, что оная «культура» неравномерна. Сильно неравномерна. В глубинке где угодно она будет иной, нежели в культурно-научной столице этого же где угодно. При том, что самоучный самородок(как и непонимающий тупка) и там, и там вполне может появиться.
По своему опыту нанимания индусов на upwork, причем далеко не с минимальными ценниками, всё-таки у них есть неприятные особенности, связанные с работой. Не столько неразумность, сколько постоянное желание срезать несрезаемые углы, причем даже на почасовой оплате.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Вы что, хотите, чтобы MS перестал заниматься постоянными улучшениями UX в своих OS и выпускать обновления каждые три месяца?)
На семёрке всплывающая подсказка остаётся на экране, пока снова не наведёшь на его значок.
UFO just landed and posted this here
Неубедительно. Держать в памяти короткий массив из соответствий «pid — хэндл иконки» и пробегаться по нему при завершении процесса было бы очень быстро, вряд ли даже измеримо в мс на современных машинах. А вы это сравниваете с чтением файла 100 000 раз.
UFO just landed and posted this here
Тут нужен фундаментальный механизм уведомления пользовательских приложений о рождении и смерти процессов, без которого ваш массив будет требовать непрерывного опроса
И за 20 лет такой механизм сделать не удосужились? Притом что ядро современных версий Windows — раз в 10 увеличилось?
А зачем? Это фундаментальное улучшение не принесет прибыли, а пипл схавает и так.
Но ведь перестал хавать. Если с Windows 3.0 на Windows 3.1 пересаживались добровольно, то всё, что после XP — приходится «всучивать» разными способами. На Windows 10 — даже при всех сверхусилиях, удалось пересадить половину пользователей только через 4 года после релиза!

P.S. На 95/XP тоже переходили долго, на самом деле, но там всё понятно: требовалось обновить железо, приходилось копить на апгрейд. Но вы видели сейчас хотя бы одного человека, который не пользуется Windows 10, но собирается и копит на неё деньги? Я — ни разу, ни одного. А вот людей, которые держатся за Windows 7 — полно (есть ещё и такие, кто Windows XP использует)
Но ведь перестал хавать

Я думаю если посмотреть на продажи и прибыли, то мы увидим что если что-то и изменилось, то скорее в другую сторону. Во всяком случае оборот у Microsoft'а растёт из года в год.

Вот только этот оборот уже давным-давно не от продаж Windows. И даже офис оказался никому не нужным вне PC (Windows Phone и планшеты на Windows должны были покупать как раз из-за офиса… Но не покупали).

Продавать же людям, которые покупают Windows только и исключительно из-за отсутствия альтернативы можно вообще что угодно — зачем при этом регулярно портить то, что было раньше сделано?

То что оборот такой может и не из-за самой винды я спорить не буду. Но даже если винда сама по себе там не основной фактор, то всё равно её приходится покупать чтобы нормально работать.


А на тему "портить"… Я сам не особый фанат постоянных изменений, но часть из них всё-таки просто необходима и тут никуда не денешься. А часть продиктована рынком и "средним пользователем", который например хочет вещи вроде Lenovo Yoga с тачдисплеем и планшет-модом.


И таких "хотелок" куча и всем надо угодить. И конечно в теории можно выпускать разные версии операционок под разные запросы, но Microsoft решил пойти другим путём. И тут я честно признаюсь что моих знаний/умений однозначно не хватает чтобы оценить правы они были или нет.


П.С. А учитывая вот такие ситуации (прошу прощения что на немецком) и цены я уже и смирился с тем что получаю...

randomascii.wordpress.com/2018/08/16/24-core-cpu-and-i-cant-type-an-email-part-one
Сегодня вот прочитал, нашёл в этом треде по одной из ссылок.

Серьёзно, всей этой проблемы попросту не было бы — как не понадобилось бы и десятков человекочасов, затраченных на решение отдельных недоработок, приведших к её появлению — если бы в MS лет 5 назад не сделали такую вещь, как CFG (а ещё раньше не сделали бы ASLR, без которой всем и так прекрасно жилось).
Так ведь вопрос же еще в долях рынка.

Сколько таких, критичных, как вы среди частных лиц? А какую долю в рынке имеют корпоративные закупки?
А какую долю в рынке имеют корпоративные закупки?
Корпоративные закупки — как раз отличный показатель. Многие компании вот только вот-вот сейчас сползли с Windows 7. Тянули до последнего. Думаете это происходит из-за того, что им очень нужны пердосвистелки из Windows 10?

Воспрос риторический.
Многие компании вот только вот-вот сейчас сползли с Windows 7.

А вот тут мне бы интересно было посмотреть на цифры и сколько процентов составляют эти "многие". Все известные мне фирмы/конторы на win10 уже давно перешли и не то чтобы с каким-то огромными проблемами.


П.С. А учитывая что в Европе многие фирмы берут компы в лизинг и/или просто меняют их где-то раз в пять лет, то они с новыми компами автоматом получали и win10. Так что надо ещё и по странам отдельно смотреть где как дела обстоят.

П.С. А учитывая что в Европе многие фирмы берут компы в лизинг и/или просто меняют их где-то раз в пять лет, то они с новыми компами автоматом получали и win10.
Если мы говорим про достаточно большие фирмы, то они ставят, обычно, свою сборку Windows Enterprise Edition. Которую, сюрприз-сюрприз, обновлять не любят — это затраты на переобучение и прочее.

А вот тут мне бы интересно было посмотреть на цифры и сколько процентов составляют эти «многие».
Тот факт, что Windows 10 только в этом году обогнала Windows 7 по популярности, по моему, говорит о многом.

Даже если считать, что компьютеры обновляются раз в пять лет, и пользователи используют то, что получают от продавца — это должно было бы случиться раньше. А если ещё вспомнить, как Windows 10 пихали бесплатно всем пользователям Windows 7… то вывод очевиден: все добавленные после Windows 7 пердосвистелки не приводят к росту популярности. Скорее ситуацию можно охарактизовать как «пользователи ненавидят Windows 10, но используют из-за отсуствия альтернативы».

Общую статистику по win10 я видел и не оспариваю. Интересно посмотреть как оно выглядит по сегментам и странам.


Ну и как бы у нашей фирмы переход на win10 каких-то особых проблем не вызвал. Во всяком случае не больше чем на предыдущие версии. У нас например скорее проблемы с тенденций Microsoft'а переносить всё в онлайн-сервисы и cloud.

пихали бесплатно всем пользователям Windows 7
Правда это не работало для энтерпрайз пользователей и за обновление до 10 надо было платить (если нет SA).

Есть такие механизмы. Для отслеживания старта процессов посложнее: свой драйвер использующий PsSetCreateProcessNotifyRoutine. Для отслеживания завершения: EnumProcesses, OpenProcess, WaitForMultipleObjects.


Почему эксплорер иконки не удаляет после смерти процесса — фиг знает. Скорее всего для обратной совместимости с какими-то древними приложениями, которые выводили иконку с оповещением и завершали процесс.

UFO just landed and posted this here
В майкрософте долгое время работали довольно жесткие требования к оптимизации работы системы. Это и принцип «не жди в цикле, используй блокирующую ф-цию», и «не сохраняй в память мелочь, которую можно быстро пересчитать», и «вероятное на 1/1000000 событие произойдет через минуту», и много другого. Сегодня, похоже от этой практики отказались, к сожалению.
Но ошибку, в результате, так и не исправили.

В результате имеем систему которая одновременно и жрёт ресурсы, как не в себя, и глючит. Отличное сочетание.
UFO just landed and posted this here
Ошибка — это не соответствующее ТЗ поведение программы вследствие неправильно написанного кода.
С точки зрения пользователя ошибка — это несоотствие поведения программы ожидаемому. Пользователи ТЗ не читают.

Конечно все пользователи разные, так что что для одного ошибка — для друого может быть фичей… но вот конкретно в случае с треем я не видел никого и никогда, кому бы существующее состояние нравилось.
UFO just landed and posted this here
Пользователи ТЗ не читают.
И не пишут, т.е. не участвуют в формулировании. Даже корпоративные. Но продукт оплачивают именно пользователи. А на спецификации повлиять не могут. Своеобразная ситуация.
UFO just landed and posted this here
Корпорации, всё же, отличаются и размерами, и степенью влияния на MS. Вероятно, скажем у HP такое влияние есть, но специфичны их компьютеры, в основном, на уровне BIOS/UEFI; судя по огромному количеству кастомного софта HP, им легче написать свой костыль, чем убедить MS.

ИЗ программых особенностей HP, пожалуй, стоит выделить наличие драйверов для корпоративных моделей ПК и ноутбуков для большого количества версий Windows.
Спорно. taskmgr.exe — тоже приложение юзерспейса. И ничего, опрашивает все процессы раз в секунду, обновляет столбцы, и даже позволяет прибивать процессы по команде. И что самое главное, CPU почти не грузит и лагов вообще не создаёт (и раньше не создавал во времена выхода Windows 2000/XP).
UFO just landed and posted this here
Кстати, в Win10 таскменеджер таки потяжелел, в виртуалке вообще грузит процессор очень нехило…
UFO just landed and posted this here
Недалеко от истины. WPF-приложения используют XAML-разметку и средства рендеринга такие же мощные, как html+css, за это надо платить.
UFO just landed and posted this here
Корректнее, «UWP-приложения используют XAML-разметку»
Тут нужен фундаментальный механизм уведомления пользовательских приложений о рождении и смерти процессов

К слову, раз уж кто-то поднял некроветку, тоже вставлю пять копеек: в Windows же есть механизм уведомления о смерти процессов. Процесс — такой же объект ядра, как и ивенты, мьютексы и иже с ним, и к тому же переходит в сигнальное состояние при завершении процесса. Соответственно, старые добрые WaitForSingleObject/WaitForMultipleObjects прекрасно хавают хэндлы процессов.
UFO just landed and posted this here
С учетом того что и так все объекты как ядра, так и Win32, отслеживаются в таблицах процесса ядром системы, то еще один объект USER хранить и обрабатывать — вообще бесплатно.

Тут дело не в этом.

А именно, есть нотификации «окно закрыто» / «окно появилось», чтобы эксплорер свой таск бар отрисовал. Причем неважно — по какой причине окно изчезло. Оно ведь убирается когда прога падает? Вооот!

Вообще, микрософт очень долго требовала наличие невидимых окон в обязательном порядке. Для DDE, для сокетов (кто помнит первую версию WinSock — оценит).

NOTIFYICONDATA nid;
 
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = hWnd;
nid.uID = 100;
nid.uVersion = NOTIFYICON_VERSION;
nid.uCallbackMessage = WM_MYMESSAGE;
nid.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcscpy_s(nid.szTip, L"Tray Icon");
nid.uFlags = NIF_MESSAGE NIF_ICON NIF_TIP;
 
Shell_NotifyIcon(NIM_ADD, &nid);


И для трея оно тоже — есть. То есть чтобы я добавил что-то в трей — мне надо не забыть RegisterClass/CreateWindow. Ну, чтобы банально получать клики по иконке. Кто-то же должен получать WM_TASKBAR_NOTIFY…

А теперь внимание, черный ящик!!! Если эксплорер и так знает все окна в трее, если он и так получает сообщения об их закрытии, то почему он трей при этом не перерисовывает?

Великая тайна, ага.
Я кажется понял. Потому что «окно» для трея не закрывается при аварийном падении основного процесса — его закрыть просто некому.
Если окно закрыть некому — то мы получаем leakage of USER32 resources. Так что вряд ли, это еще в NT4 решили.
UFO just landed and posted this here
Explorer со своим треем, он же обычное приложение пользовательского режима. Если какая-то программа скоропостижно сдохла, забыв его попросить убрать иконку из трея, он об этом узнает, только если сам будет периодически опрашивать.
UFO just landed and posted this here
Как вариант — user32 для каждой иконки в трее регистрирует mutex и берёт его во владение, при завершении процесса процесс теряет владение mutex-ом, а Explorer ждёт изменение любого mutex-а через WaitForMultipleObjects.
UFO just landed and posted this here
Предложенное решение не рушит обратную совместимость, т.к. mutex-ы создаются в пользовательском процессе не пользовательским кодом, а кодом USER32, при добавлении иконки в трее.
UFO just landed and posted this here
В user32 не надо заводить событие смерти процесса. Достаточно в внутри NotifyIcon создать mutex (который окажется в контексте пользовательского процесса) и передать его в Explorer.exe вместе с другими параметрами треевой иконки. В момент смерти процесса mutex автоматчески отпустит, эта логика уже в ядре и никаких новых мостов не надо.

Зачем mutex, когда есть process? В NotifyIcon GetCurrrentProcessId(), в эксплорере OpenProcess(), и добавить его в WaitForMultipleObjects().

UFO just landed and posted this here
В трее не больше 10 иконок у среднего юзера. Экономия 10 хендлов имела смысл на 386-х (и то, сомнительно), но сейчас-то никто не мешает сделать отслеживание умирающих приложений с сокрытием его иконки.
UFO just landed and posted this here
UFO just landed and posted this here
А опрос во-первых слишком дорог сам по себе, а во-вторых противоречит политике кодирования MS (никаких циклов ожидания/опроса, только блокирующие функции).
В итоге имеем контекстное меню, вызванное на рабочем столе, которое вернётся после таймаута опроса порта выключенного сетевого принтера на предмет присутствия в нём бумаги. Весь Explorer при этом висит.
А вот прибить иконку в трее накладно. А там приложение мониторинга температур, бодро докладывающее, что всё ок, температура в норме, но это не точно.
UFO just landed and posted this here
… за отрисовку пункта меню отвечает стороннее приложение, которое тупит. Что делать?
Свой таймаут добавлять. 500 мс должно хватать всем. Разослали приглашения всем желающим, собрали ответы, подождали 500 мс, кто не успел — тот не успел.

Сюда же добавлю панель управления, там объектов то всего-ничего, но отрисовывается неспеша. На одном из компьютеров какой-то пункт выскакивает позже остальных и становится в начале, сдвигая все. В результате клик попадает по другому пункту. Не комильфо.

А если это приложение не вылетело, а зависло? Температура будет точно так же «в норме», но повода убивать иконку у експлорера вообще никакого.
Вот ни разу у меня hwinfo не вылетало.

А такие вещи, как мониторинг температуры вообще должны работать сервисами, для которых есть штатный механизм перезапуска после сбоя.
Подпишусь. Только производителям железа это не нужно, потому из коробки отсутствует. А брендовые утилиты мониторинга температуры и управления охлаждением это ужас.
UFO just landed and posted this here
За 1500 мс я откушу себе мышку. Или перестану пользоваться контекстным меню. На маках как-то обходились одной кнопкой мышки.

Речь, если правильно понимаю, исходно шла о том, что приложение, зарегистрировавшее иконку в трее, прибили, а иконка осталась. Если падает само, значит, можно обойтись и без него.
UFO just landed and posted this here
Предложил бы отталкиваться от ценности времени пользователя. Система и прикладное ПО существуют именно для него и, в идеале, не должны отнимать его время.

В данном случае в контекстное меню можно добавить пункт "...", куда ссыпать все неотозвавшиеся в разумные сроки тормозные процессы. Если при первом проходе пользователь недосчитался нужного ему ответа, он может осознанно выбрать данный пункт, подождать и получить недостающие статусы. Как спойлер на Хабре — кому-то нужно быстро пролистать, кому-то заглянуть под капот. Но замедлять каждую операцию ради вероятнее всего несущественной информации представляется некорректным.
UFO just landed and posted this here
Действительно, непорядок.
Тогда предлагаю вместо загрузки системы вывести сообщение «Подождите, идёт улучшение», так система приобретёт окончательную детерминированность.
Если воспринимать трей как каталог, в котором приложения создают некие файлы-маячки и сами должны их удалять, то такое поведение оказывается вполне логичным.
Такое мнение имеет право на жизнь. Но в этом случае, значок мёртвого процесса не должен пропадать при наведении на него мыши. Ведь именно это вызывает недоумение пользователя.
UFO just landed and posted this here
И получалось, что вместо ожидаемого окна иконка начинала выводить что-то «непонятное». Как будто программа все еще запущена, но работает как-то не так как нужно.
И уже в этот момент добжно было бы стать понятно, что иконки от «умерших» приложений должны были бы из трея пропадать.

Ну хорошо, к релизу Windows 95 проблему исправить не успели. Бывает. Почему за прошедшие 25 лет не исправили???

Сколько ненужной работы сделано, чтобы тупому юзеру система казалась стильнее, моднее и молодежнее.
Вот только «тупой юзер» этого не ценит и предпочитает старые версии… странно, правда?
UFO just landed and posted this here
Они и пропадают. Но триггером для этого является какое-нибудь действие пользователя.

Угу. То есть работал я и работал, иконка тихо пропала — я бы и не заметил. Но как только я потянуля мышкой, чтобы нажать именно на ту иконку (которая отлично видна) — а она прямо из-под курсора бац, и пропала! Не раздражает совершенно! (сарказм)

UFO just landed and posted this here
Это уже натягивание совы на глобус.

Напоминает


тот анекдот

— Рабинович, как Вы могли — говорят, Вам вчера в автобусе дали оплеуху, а вы даже не отреагировали!
— Я?!? Не отреагировал?! А кто же тогда упал?

UFO just landed and posted this here
Это всё прекрасно, но не объясняет того факта, что на то, чтобы изгадить интерфейс и вызвать ненависть пользовалей — ресурсы находятся, а на то, чтобы исправить ошибки — нет.
UFO just landed and posted this here
Совок напоминает.
Совок плохо кончил. Во многом именно поэтому. Ждём краха ИТ-индустрии? Или?
UFO just landed and posted this here
В СССР тоже многие думали, что «это теперь навсегда».

То что крах «чего-то», в таких условиях, неизбежен — это 100%.

А вот что именно крякнет — это можно обсуждать…
Все правильно! В ранних альфах win95 при попытке интерактивного взаимодействия с таким значком выдавался месседжбокс, что приложение, создавшее значек, было неожиданно закрыто
А нахрена? Кто-то просил выводить это сообщение?
Если воспринимать трей как каталог, в котором приложения создают некие файлы-маячки и сами должны их удалять,
То и нефиг что-то делать без ведома программы, пусть даже уже покойной.
UFO just landed and posted this here
Понимаете, все пользователи «топят» за вменяемое поведение: либо иконка есть и работает, либо её нет. Иконка, которая вроде как есть, но которую использовать нельзя — это бардак.
Так вы же сами топите за немедленное удаление!
Я обсуждаю предложенную модель «воспринимать трей как каталог, в котором приложения создают некие файлы-маячки». Если иконка может жить без приложения, то пусть так и будет. Если иконка должна жить только вместе с приложением — тоже принимается. Но текущее поведение — это ни та модель, ни другая.
Это очень прискорбно, но какое решение вы предлагаете для подобных ситуаций? Не обязательно с принтером, а, например, когда за отрисовку пункта меню отвечает стороннее приложение, которое тупит. Что делать?

Нарисовать в пункте меню заглушку (скажем, «Ждём ответа от принтера»), а когда ответ придёт — поменять пункт на результат.
Ну, у меня есть для этого
специальный скриншот
image
Ситуация не та, но «проблема» похожа. Они могли бы вместо мессаджбокса сделать это в меню Файл-Печать и тогда это была бы именно та ситуация, верно? От себя добавлю, что сей мессаджбокс выводился автоматически сам при запуске ворда, без активации меню печати.
Как это нет способа узнать?
Большой taskbar успешно может, а маленький iconbar не может?
Большой таскбар отображает все окна определённого типа.
А чтобы попасть в трей, приложение должно зарегистрировать значок отдельным вызовом. Соответственно, потом разрегистрировать другим вызовом.
Что, впрочем, не мешает некоторым приложениям отображать беглую анимацию в трее.
Просто нужно либо обязать приложение перед закрытием разрегистрировать значок, либо самому трею периодически проверять все зарегистрированные значки на актуальность, что действительно на фоне темы статьи не так уже и напряжно.
Открываем SetWindowsHookEx, ставим WH_SHELL hook, и ловим HSHELL_WINDOWDESTROYED event.

Появилось с W2k.

Используется explorer, а затем и dwm чтобы перерисовывать таск бар.

Во дела, прошло 20 лет и уже «нет способа» :-)
UFO just landed and posted this here
Это для WH_CBT или WH_CALLWNDPROC требуется внедрение DLL в процессы, и это действительно тяжелая штука.

А я речь веду о вот таком. Специально нашел вам пример на дотнете.

public class SystemProcessHookForm : Form
{
...
    public SystemProcessHookForm()
    {
        // Hook on to the shell
        msgNotify = Interop.RegisterWindowMessage("SHELLHOOK");
        Interop.RegisterShellHookWindow(this.Handle);
    }

    protected override void WndProc(ref Message m)
    {
        if (m.Msg == msgNotify)
        {
            // Receive shell messages
            switch ((Interop.ShellEvents)m.WParam.ToInt32())
            {
                case Interop.ShellEvents.HSHELL_WINDOWCREATED:
                case Interop.ShellEvents.HSHELL_WINDOWDESTROYED:
                case Interop.ShellEvents.HSHELL_WINDOWACTIVATED:
                    string wName = GetWindowName(m.LParam);
                    var action = (Interop.ShellEvents)m.WParam.ToInt32();
                    OnWindowEvent(string.Format("{0} - {1}: {2}", action, m.LParam, wName));
                    break;
            }
        }
        base.WndProc(ref m);
    }
...
}


Как видите, реализация очень проста, не требует никаких инъекций кода и отдельных DLL (хотя и это тоже достаточно простая штука, закинул свою DLL-ку в реестр и все), и вполне себе работает.

И да, ядро много чего делает для Win32 контекста, в том числе — освобождая ресурсы user/gdi. И в том числе — рассылает и нотификации для top-level windows.

Я даже лет 15 назад пытался делать нечто похожее, чтобы без сервиса и агента в трее, но выглядело это трюкачеством :-)
UFO just landed and posted this here
handle to the top-level window

Ваша контр-аргументация должна бы выглядеть как-то так: вот пример (код) того что в трей можно поместить не только top level window, это работает, и это ломает всю красоту схемы. Нашелся кейс для которого… и т. д.

А раз можно туда подсунуть окно со стилем WS_CHILD — то и смысл отслеживать только top levels пропадает. Так?

А то мы скоро дойдем до цитирования Windows 95 internals в попытках выяснить — какой же из нескольких способов отслеживания закрытия top-level window будет настолько симпатичен, что вы все-таки согласитесь — все-таки могла микрософт им воспользоваться :-)

Или наоборот — забракуете все предложенные, и перейдем к гаданию на кофейной гуще в стиле «что же помешало микрософту за 25 лет сделать еще один способ» :-)
UFO just landed and posted this here
Каюсь, кода не дам, нет времени и возможности сейчас. Но вообще-то в NOTIFYICONDATA.hWnd очень даже можно передать дескриптор невидимого окна нулевого размера.

Да. И как правило (и как в примерах микрософта) — это топ-левел полученный через RegisterClass()/CreateWindow() :-)

Оттого что оно невидимое и оттого что у него размер (кстати неважно какой) — оно ведь не перестает быть top level.

Итого — вся правка должна была содержать три строчки в таск баре
case HSHELL_WINDOWDESTROYED:
    SendMessage(трей, WM_USER + NNN, 0, lParam);
    break;
и небольшой кусочек кода в обработке трея

case WM_USER + NNN:
    for(int i=0; i <  m_cIconsCount; ++i) {
        if (IsDead(m_Icons[i])) {
            ReleaseIconContext(m_Icons[i]);
            MoveMemory(&m_Icons[i], &m_Icons[i+1], sizeof(m_Icons[0]) * (m_сIconsCount - i - 1));
            --i;
            --m_cIconsCount;
            InvalidateRect(m_hWnd, NULL);
        }
    }
    break;

И в общем-то все, остальное и так есть и используется. Кстати заметьте, если «внутри» там список а не массив, то код будет чище и короче. Массив просто вероятнее.

И кстати, если бы это работало для топ-левелов, то все тут же бы стали использовать топ-левелы, это и сейчас так происходит, но стихийно.
HSHELL_WINDOWDESTROYED приходит при вызове DestroyWindow, не уверен, что он придёт при аварийном завершении процесса.
DestroyWindow function

Destroys the specified window. The function sends WM_DESTROY and WM_NCDESTROY messages to the window to deactivate it and remove the keyboard focus from it…

Это по очевидным причинам — не то :-)
Так самое смешное, что иконки не убираются и у многих штатно закрывающихся программ, а не только у аварийно упавших…
UFO just landed and posted this here
Ну может и правда только у аварийно упавших. Я ещё понаблюдаю за своим софтом)
UFO just landed and posted this here
Вы еще скажите, что за окнами, открытыми файлами и выделенной памятью тоже следить не надо, по той же логике. Это именно что корявый дизайн, сделанный на скорую руку.
UFO just landed and posted this here
А таскбару кто-то же сообщает о смерти процесса?
Таскбар не знает о процессах, а отображает top-level windows.
Хотя, как выше заметили, каждая иконка в трее связана с каким-либо окном, поэтому замечание в принципе верное.
А таскменеджер — не в пространстве пользователя работает? У него же есть окно, в котором данные выводятся.
Ну а что, зато такты процессора не тратятся зря на ерунду, ведь убирать значки надо очень редко, а вот дёргать проверки — постоянно
Я думаю, какая-то такая причина за этим стоит :)
Причем очень несложная причина :-)

Невидимые окна можно создавать и удалять со скоростью во много раз большей чем сможет на них реагировать трей. Всего лишь.

Причем таскбару это не грозит — он отслеживает события активации / деактивации, это достаточно медленный процесс с переводом и обработкой смены фокуса, ввода клавиатуры, обработкой тонны событий в окнах и их содержимом, все эти erasebgnd, перерисовки, вычисления всего и вся (повторить для своих чайлдов рекурсивно), все то что реально происходит при смене активных окон.

Уж обвести рамочку вокруг плашки с иконкой (и опционально текстом) показывающим состояние — оно точно успеет. Более того — оно успевает и thumbnail снять и еще покурить и выпить чашечку кофе :-)

А вот трею надо как-то успевать реагировать (и быстро) на кипящий поток удаляемых окон, и проверять каждое — а оно вообще живо? А оно события от трея ловит? Ну и высчитать в связи с этим что показываем / не показываем, все эти хинты и подсказки, и прочая и прочая. В коде решили упростить (как оно обычно бывает):
    ...
else 
    InvalidateRect(весь трей целиком)

Во время тестирования нашлась-таки целая пачка программ от самого микрософт, которая заставила оный трей безудержно фликерить и выжирать ресурсы.

Потому и решили — вообще убрать, черт-те что получилось. Будем считать это фичей! А вызов кода перенесли на события от мыши.

Прошло двадцать пять лет…

Я полагаю что мой рассказик — весьма похож на реальные события, хотя конечно это только красивая гипотеза.
Я первое своё предложение хотел выделить тегом <sarcasm>, но он увы съелся… Да, гипотеза верная скорее всего.

Правда, по времена, когда писался этот код, thumbnail никакой ещё не снимался от окна (вы ведь про отображение миниатюр в Aero?). И чтобы снять такую миниатюру, надо таки сначала дождаться полной отрисовки содержимого окна, так что тут всё сложнее…

А вот трею надо как-то успевать реагировать (и быстро) на кипящий поток удаляемых окон, и проверять каждое — а оно вообще живо? А оно события от трея ловит?
Это вы всерьёз или тоже как часть шутки? Какой там поток, мы что, окна в повседневной работе десятками в секунду открываем и закрываем? Или вы про фиктивные, которые «невидимые», и о которых знает только ОС? Но даже их наверное не столько. А уж тех, которые уже через вызов процедуры зарегали себя «в трей», вообще не больше 2-3 за раз обычно. Так неужели правда так сложно по этому списку проходиться линейно хотя бы раз в секунду, чекая их состояние (точнее, состояние процесса, привязанного к ним)? Мне кажется, даже для железа тех лет это совершенно тривиальная задача.

Да и фликерить тут нечему. Фликерить могло или на стресс-тестах, когда и правда десятки окон в секунду, или из-за криво написанного ПО, которое по нескольку раз пытается зарегать иконку, или из-за каких-то хитрых внутренних таймингов. Например, сначала в клиентском коде идёт регистрация иконки в трей, потом уже создаётся основное окно, и пока оно не создано, explorer считает, что иконки нет, а перед этим она как бы есть, а потом окно открылось, и она снова есть, и в итоге происходит скачок туда-сюда, что смотрится для пользователя безобразно. И в итоге вместо того, чтобы переписать код работы с иконками трея, пошли более простым путём, выпилив вообще мониторинг :)

В общем, почти как вы сказали, только скорее всего не в мерцании всего трея было дело (перерисовка раз в полсекунды с нормальной двойной буферизацией мерцать ну никак не должна).
Больше в шутку конечно. По факту — просто не сделали, потом никто не завел тикет на этот минорный баг, потом уже и легенды подтянулись, а там и окаменело. Но сделать — вполне могли, этому ничто не мешало.
Фликерить могло или на стресс-тестах, когда и правда десятки окон в секунду, или из-за криво написанного ПО, которое по нескольку раз пытается зарегать иконку, или из-за каких-то хитрых внутренних таймингов.
А возможно дело было в debug сборке Windows, событий там происходит явно больше.

Из приколов в трее наблюдал скачущего жеребца, состоящего из нескольких соседних иконок, спектр-анализатор и миниатюру танцовщицы, двигающуюся в такт музыке. Всё живенькое и без глюков.
Зато в десятке починили препротивнейший баг, выражавшийся в том, что запущенные программы иногда не получали значок в трее, хотя доллжны были :)
Ни разу не программер, но про иконку в трее согласен. Есть у меня приложение, которое периодически вываливается (кстати — на 7-ке такого на было). При его перезапуске в трее появляется вторая иконка. Что бы исчезла первая — надо навестить. Однажды, из интереса ))), собрал там пять иконок! Больше — стало уже неинтересно…
Баги, несуразности, тормоза в продуктах MS не чинятся ДЕСЯТИЛЕТИЯМИ


По моим ощущениям, в десятке еще и насыпали неприличное количество новых.

О, а я думал к чему это мицгол вспомнился, и тут вы со своим каментом.

А какая национальность у разработчиков 1С и Касперского?
Повезло. А могли бы еще и писать по 68 байт сотни тысяч вызовов. С синком. Каждый. Вот тогда было бы веселье.
Впрочем, 68 или не 68 — всё равно есть кеш диска и всё равно есть кеш системы. Проблема не в файле, а в количестве системных вызовов на один щелчек мыши. 100К — это слишком много.
Тогда не было бы веселья, потому что это быстро бы нашли и пофиксили.
Конечно пофиксили бы, поставив более производительную железку
этот файл это список Quick access и поскольку я этой фичей Єксплорера не пользуюсь, то он у меня маленький и никаких тормозов не создает
после удаления файла f01b4d95cf55d32a.automaticDestinations-ms этот файл создается автоматически после запуска проводника
UFO just landed and posted this here
Или переименовываем/удаляем папку %appdata%\Microsoft\Windows\Recent целиком, создаём одноимённый файл и ставим ему атрибут «только для чтения».
Мне вполне хватает истории файлов в приложениях, общесистемная не нужна.
Надо у system права отбирать и наследование выключать. надежнее.
Конечно. Но пока хватает ;)
Как ни странно, простая вещь, а действует пока безотказно, приложения обычно не пытаются понять, что не так. Когда-то во времена разгула вирусов под xp помогало избавляться от особо назойливых.
UFO just landed and posted this here
По идее, такой файл истории должен у каждой программы быть, которая на панели задач побывала — там же у многих история какая-никакая отображается по правой кнопке.
Интересно, можно ли безболезненно удалять все файлы в %appdata%\Microsoft\Windows\Recent\AutomaticDestinations?
У меня их там 44 штуки.
Размером от 4 Кб до 3 Мб.

Но, почему-то файла с именем f01b4d95cf55d32a.automaticDestinations-ms среди них нет.
А в Windows XP многократный вызов контекстного меню в папке приводил к 100% загрузке процессора. Работает вплоть до SP3 и даже в виртуалке (скриншот ниже). Нагрузка спадает с закрытием контекстного меню.
Нотариально заверенный скриншот
image
Как вы это сделали?) У меня не воспроизводится. Win XP SP3, не виртуалка. Кликал правой кнопкой много раз, нагрузка около нуля.
Выделяешь объект (на скрине я выделил диск) и права кнопка.
А вот, например, на папке
image

А меня бесит, что если на таскбаре нажимаешь на кнопку, показывающую все значки рабочего стола, то порой все подвисает секунд на 10. На двух разных машинах.
Возможно есть ярлык на удалённую программу (пытается найти её в других папках) или на недоступный сетевой ресурс. У меня такое было в Windows 7.
Я предполагал такой вариант, но найти ничего не смог. Видимо I must try harder…
У меня кстати было подобное в одной конторе когда-то. В контекстном меню была ссылка на сетевой ресурс компьютера, который демонтировали. Соответственно каждый вызов контекстного меню в проводнике занимал 2 минуты, на время которых эксплорер-рабочий стол повисал полностью, тот еще квест был.
Хорошо что я тогда докопался до истины и получил опыт, тк обычно такое лечат переустановкой винды.
Или ссылка на сетевой принтер в пункте «Печать», проверяющая наличие бумаги в недоступном принтере.
Проверьте еще обои на рабочий стол. Был случай, 16 мегайбайтный BMP лежащий на недоступном сетевом диске.
ЕМНИП, это был случай с просто 16MB bmp-шкой при общей ОЗУ в 32MB. Когда просто сворачивание окна (с отрисовкой обоины) вешало машинку на минуту.
Нет, это был случай на моей бывшей работе в 10-11 году. Неделю думали «что не так с этим компом», пока не заметили, что проблемы возникают при отрисовке хотя бы части рабочего стола
По поводу сетевого ресурс: а есть простой способ удалить его при помощи интерфейса? Ждать таймаута очень утомительно и не всегда срабатывает.
Даж не знаю что ответить.
Во 1 сам по себе ответ уровня «пошел на хрен»
Во 2 я говорю о способе для пользователей, это же винда, нужен мышевозильный способ
В 3 как ваш рецепт поможет удалить ярлык я не понимаю
ПКМ на «сетевом окружении»
Отключить сетевой диск.

ЗЫ все же лучше повесить в логон скрипт авто детач.
А причем тут сетевой диск если в закладках висит ярлык на сетевую шару?

Про скрипты по телефону объяснить ну никак, а простого способа я не знаю.
При том что добавить такой ярлык мышечкой легко и просто, а выдернуть его оттуда может быть невероятно весело.
1) я ж не няничка в детском садике чтобы тебя с ложечки кормить, хоть бы попробовал выполнить предложенную команду в консоли и посмотреть на вывод перед тем как писать глупости.

2) как-то определись, тебе простой способ или все же утомительно ждать таймаута.

3) что тебе мешает ярлык «просто удалить»? А лучше внимательнее перечитай свой коментарий на который я отвечал и покажи где там идеть речь о ярлыках.

Прежде всего — не "няничка", а вовсе даже "нянечка". (Тут граммар-наци отпустило).


хоть бы попробовал выполнить предложенную команду в консоли

А Вы все-все советы из интернета сразу в консоли пробуете? Качельки лизнуть rm -rf / тоже пробовали?

хоспаде (грама-наци выхади). Там же ключ "/?" стоит. Если ты не в курсе что для видндовых команд этот ключ означате то о чем с тобой говорить, живи в своем мышевозном мире и не задавай глупых вопросов.

Сим бестолковую дискуссию заканчиваю.
Я не помню, когда появилось отображение в проводнике иконок у файлов в соответствии с заданной программой по-умолчанию, кажется в Windows XP. Добавило огромных тормозов при открытии папок, визуально видно как прорисовываются иконки последовательно для каждого файла. Когда после этого если запускаешь Windows 98 — кажется что проводник летает.
Меня вполне устраивали единообразные иконки для папок и отсутствие иконок для файлов. Я всегда включаю отображение расширения файлов, этого вполне достаточно.
Может кто-нибудь знает, как отключить иконки? Windows 7/10.
Спасибо, попробовал — не помогло.
Выключал оба пункта:
— Always show icons, not thumbnails
— Display file icon on thumbnail

Я так понял первый пункт служит для отключения превьюшек (например, картинок), а второй показывает иконку типа файла на превьюшке.
А я просто делаю вид как список. Причем с самой Win95. Что со мной не так?
Вы всё делаете правильно, это я неправильно объяснил. Я тоже всегда включаю List View для всех папок.

Тем не менее слева от каждого имени файла всё-равно отображается иконка. Так вот в ранних версиях Windows (кажется ещё до Windows 95) этой иконки не было вообще. В следующих версиях она стала отображаться, но их было небольшое количество и они выбирались исходя из расширения файла (ОДНА иконка на каждое расширение), на этом этапе интерфейс стал тормознутее, но ещё приемлемо.

А далее пошло по нарастающей — у каждого расширения файла появилось по нескольку ассоциаций с программами, одна из которых — по-умолчанию. И на этом этапе появились тормоза.

Примерный сегодняшний алгоритм действий Винды, как я его понимаю.
1. Мы открываем папку в проводнике.
2. Берётся первый файл в списке, смотрится его расширение.
3. Лезем в реестр, посмотреть что там ему соответствует, какая программа.
4. Лезем в эту программу, чтобы взять от неё иконку.
5. Рисуем иконку рядом с именем файла.
GOTO 2 для следующего файла в списке.

Если их тысяча, да ещё на HDD — очень времязатратное мероприятие, невзирая на кеширование и пр. Для того чтобы просто показать мне список файлов производится куча ненужных действий.

Кроме того, для запускаемых файлов, файлов ресурсов и т.д. проводник лезет внутрь этого файла, чтобы вытащить иконку из него. Т.е. для того, чтобы показать мне имя файл в списке, этот файл нужно открыть и прочитать из него данные!!! Я понимаю заботу о простых юзерах — им предложено по-умолчанию показать красивую иконку и обязательно убрать расширение файла — но почему не сделать иконки отключаемыми? Слава богу расширение пока ещё можно включить…

Откройте папку с сотней файлов в любой виртуалке Windows 95 или Windows 3.1, NT — вы поймёте о чем я говорю, там список фалов любых размеров открывается мгновенно.
Это всё понятно. Для этого уже в Win98 точно был кеш иконок (который у меня на компьютерах с nForce2 постоянно слетал и показывал кашу). Не уверен за Win95.
Возможно, стоит посмотреть в сторону альтернативных файловых менеджеров. Скажем, Far Manager консольный, там значков нет по определению. А Total Commander поддерживает четыре разных режим для отображения значков, не считая дополнительных настроек.
Примерный сегодняшний алгоритм действий Винды, как я его понимаю.

неправильно понимаешь — все иконки хранятся в кеше c:\Users\имяюзверя\AppData\Local\Microsoft\Windows\Explorer\
Да всё-равно где они хранятся, их нужно прочитать и нарисовать, а ещё небось добавилось — проверить сам кеш на протухлость и обновить иконку в нем… Сделать тысячи системных вызовов, сто тысяч раз обратиться к реестру. Даже если всё это хранится в RAM это требует времени и ресурсов CPU.

На самом деле лично у меня отношение к Windows Explorer уже давно такое же как к Internet Explorer. То есть использую его на свежеустановленной системе чтобы поcтавить нормальный File Manager.


Выше упомянутый Total Commander вполне себе прилично работает. Это если из бесплатных.


А уж если не жалко деньги на это дело потратить, то выбор ещё больше.
У нас на работе например Directory Opus по корпоративной лицензии и я им дико доволен. Даже иногда подумываю домой прикупить.

А панель задач Far Manager тоже заменяет?

Это я не в курсе. Именно Far Manager я не пользуюсь и панель задач меня более-менее устраивает в том виде как она есть. Но предположу что для этого тоже какие-то варианты найти можно.

Контекстное меню и список процессов с подробностями Far поддерживает, нет причин, почему он не смог бы заменить панель задач.

Тут проблема в другом: чтобы воспользоваться фаром, надо на него сначала как-то переключиться. А без панели задач это сделать не так просто.

Это способ запустить FAR. А дальше-то что?


Вот у вас открыто 10 окон, из них — пять развёрнуты на весь экран. где-то под ними — FAR. Как быстро и просто добраться до него чтобы что-то там сделать?


Ещё интересный вопрос — что будет если его случайно закрыть. Современные винды вроде как упавший шелл перезапускают — а вот в XP после этого пользователь оставался с голым экраном, где не работало ничего кроме Ctrl+Alt+Del. Тоже так себе удобство.

Не агитирую за замену проводника Far'ом, но это возможно. Кто пользуется только проводником, тому, видимо, не мешают его аппетиты, кто не пользуется — тому он (почти) не мешает.
Alt+Tab, кстати, продолжает работать после закрытия проводника.

Закрытие активного shell'а можно бы и запретить (хотя explorer.exe этого не делает). Но если уж закрыли, то да, Ctrl+Shift+Esc -> Файл -> Новая задача.

Современный Explorer.exe в Windows PE не запускается, Far вполне функционален.
UFO just landed and posted this here

Спасибо, я знаю. Но заменой панели задач FAR это не делает.

Чего именно не хватает? Списка запущенных приложений, миниатюр, контекстного меню, системного трея?
Существуют оконные менеджеры с заменой панели задач.
Чего именно не хватает? Списка запущенных приложений, миниатюр, контекстного меню, системного трея?

Способа быстро и удобно переключиться на нужную задачу.


Существуют оконные менеджеры с заменой панели задач.

… не являющиеся Far Manager :-)

не являющиеся Far Manager

Не совсем замена, но F11 → Process List отображает в панели список процессов, поддерживающий все прелести навигации: быстрый переход по alt+буква, фильтры, переход в окно процесса по энтеру и, например, возможность грохнуть пачку процессов по маске.

Это замена диспетчера процессов, но никак не панели задач

Определённые горячие клавиши всё равно работают, даже если шелл прописан как far. И речь не только за Ctrl+Alt+Del
Как быстро и просто добраться до него чтобы что-то там сделать?

Запускаю FarManager в ConEmu, который по Ctrl+` доступен из любого места без проблем.

CTRL+Shift+ESC работало и работает — ещё до запуска шелла или при падении оного вызывает ДиспетчерЗадач из которого можно запустить его снова (и не только).

А панель задач Far Manager тоже заменяет?
Работающие в Far обычно пользуются клавиатурой. Панель задач больше заточена под мышь и она не особо используется. Для переключения задач удобнее нажимать Alt+Tab — это не функция проводника. Её улучшили в Win10 и она удобна.
Total Commander вполне себе прилично работает. Это если из бесплатных.
Я очень извиняюсь, но вообще-то Тотал не бесплатный. Он всю жизнь шароварный был. Тридцать евро стоит, если мне память не изменяет.

У нас 32-bit для частников идёт как бесплатная версия и платить надо только за 64. Да и то часто ключи бесплатно раздают.
Так что он может официально и не совсем бесплатный, но на практике частники за него не платят.

Тотал разной битности никогда не лицензировался отдельно. Лицензия покупается единожды и действует на все версии и все битности, никакой специальной лицензии на 32-битку для частников не существует.

Имеется неофициальная позиция разработчика Тотала, что для домашних компьютеров он лично не возражает против бесплатного использования дольше, чем официальный триальный срок в 30 дней, при условии что пользователь при запуске честно нажимает 1-2-3 в стартовом диалоге, а не обходит этот момент тем или иным способом. Но даже с учётом этого называть программу «бесплатной» неверно.

Опять же возможно что "региональные особенности", но сейчас глянул и везде можно скачать "бесплатную версию" с возможным апгрейдом до полной за 30-40€.
Ну и у меня есть ключи, которые я в своё время получил "в нагрузку" при покупках компов и железа.


П.С. Да и пусть Total Commander глобально не бесплатный, но наверняка можно найти адекватную бесплатную замену эксплореру :)

Multi Commander довольно хорошо справляется с ролью бесплатной замены Тоталу. А эксплорер… да, «Мерседес» тоже адекватная замена «Жигулям» :)
О, не знал раньше. Спасибо, пощупаю.
Я Double Commander использую как замену Total, если стоит вопрос в лицензии.
Он даже на Linux есть
Под Linux'ом и я его использую.
Под виндой он у меня как-то не прижился.
Ну вообще Дабл — самый полный клон Тотала из всех возможных.
Хотя и все равно неполный, конечно. Но лучше Анриала, который второй, пожалуй, в этом списке.
Если на каком-то сайте предлагают скачать «бесплатную версию» Тотала, то скачивать с такого сайта обычно не рекомендуется. На официальном же сайте предлагается стандартный дистрибутив шароварной программы, каковой Тотал и является. Несмотря на то, что он не накладывает каких-либо ограничений на свою функциональность при отсутствии ключа — хоть в пределах триального срока, хоть по его истечении (не считая диалога 1-2-3) — это не даёт права называть программу бесплатной, поскольку это понятие регулируется текстом лицензии, а не наличием/отсутствием блокировок в программным коде.

Ну всё-таки странички вроде chip, netzwelt, heise и иже с ними я бы к "таким сайтам" относить не стал. С них наверное пол Германии софт качает. Так что там вряд ли что-то нелегальное распространяется.


П.С. Но не суть важно. Забываем про Total commander(или покупаем его) и качаем какой-нибудь Multi или Free Commander, которые тут упоминали другие люди:)

Ну всё-таки странички вроде chip, netzwelt, heise и иже с ними я бы к «таким сайтам» относить не стал. С них наверное пол Германии софт качает. Так что там вряд ли что-то нелегальное распространяется.


На всех этих сайтах лежит обычная шароварная версия тотала плюс адварь от самого сайта.
Использую FreeCommander
Доступна версия х64 Донор за 5 Евро, мне понравилось — задонатил.
Видать, я выпал из контекста.
Никогда про такое не слышал: хотя «у нас» может обозначать довольно разные места планеты, это правда.

Ну в данном конкретном случае "у нас" это как минимум Германия, а скорее всего и остальные немецкоговорящие страны. Потому что сейчас ради проверки скачал по быстрому такую бесплатную версию и там можно выбрать только немецкий язык. Но никаких предупреждений что версия только на 30 дней мне не выскочило.

Понял.
Мне оно даже не выгуглилось, ну да ладно. Не Германия :)
И вот такого не выскочило?
Скрин
image

Неа. Но теперь самому стало интересно. Домой приду, накачаю отовсюду и буду проверять :)

Так, извиняюсь, был неправ. Похоже везде шареварные версии лежат.


Один и тот же установщик на "чистом компе" выдаёт предупреждение, а на компе с уже установленным TC просто ставит его и всё.

Far manager тоже был не бесплатным. Бесплатность ему явно пошла на пользу.
UFO just landed and posted this here

Но большинство моих знакомых на такие мелочи внимания не обращали и использовали крякнутую версию :-)

У одногруппника как-то обнаружил кряк к Far'у. Оказалось он не читал readme.
У нас на работе например Directory Opus по корпоративной лицензии и я им дико доволен.


Ничего себе… Windows версия ещё живёт и развивается?

Помню, в середине 90х этот файловый менеджер очень любили владельцы Amiga, а на Windows он мне тогда не очень зашёл после Far.
Примерный сегодняшний алгоритм действий Винды, как я его понимаю.
1. Мы открываем папку в проводнике.
2. Берётся первый файл в списке, смотрится его расширение.
3. Лезем в реестр, посмотреть что там ему соответствует, какая программа.
4. Лезем в эту программу, чтобы взять от неё иконку.
5. Рисуем иконку рядом с именем файла.
GOTO 2 для следующего файла в списке.


Вы забыли еще несколько таких пунктов…

Еще например есть такое
  • мы читаем КАЖДЫЙ файл в папке чтобы определить что это.
  • Если это EXE то мы вытаскиваем иконку из его ресурсов.
  • Если это линк или пиф — то достаем то на что оно ссылается.
  • Если это картинка — то мы читаем ей заголовок, чтобы показать размеры (превью — отдельный шаг!).
  • Если это неизвестный нам файл — то лезем в реестр с проверкой по расширению, и т. д.


А еще есть Icon Overlay extensions. На каждую уже построенную иконку вызывается толпа внешних хэндлеров — вдруг один из них нарисует значок. К слову стрелочка поверх иконы, показывающая что это шорткат — именно так и реализована.

Ну и там еще много чего есть, кастомные column views и т. д. Так что там реально есть чему тормозить.

И это еще выносим за скобки тот факт, что напрямую к файлам эксплорер не ходит, потому что файлы могут быть виртуальными (ага, поддержка зипов, или фтп с вебдавом, или даже обмен файлами из ремот десктопа — именно вот таким провайдером). А еще не забываем что в список «файлов» попадают фавориты, закладки, «последнее», все эти «мое видео» и даже программы из контрол-панели.

Ну и не забываем, что все это тройным слоем обмазано через COM.

Нет, нельзя сказать что микрософт наговнокодила и забыла. Наоборот — они провели поистине гигантскую работу по оптимизации, на которую даже в ядерной файловой системе непрерывно натыкаешься…

Вот просто малюсенький примерчик. Смотрим в наш любимый (ну как любимый — был таким до co-signing drivers) IFS Kit, IRP_MJ_CREATE.

The IrpSp->FileObject parameter contains a pointer to the RelatedFileObject field, which is also a FILE_OBECT structure. The RelatedFileObject field of a FILE_OBJECT structure is used to indicate that a given file has been opened relative to an already open file object. This usually indicates that the relative file is a directory


Так вот в обычном конвенциональном file i/o этот самый RelatedFileObject присылал мне в драйвер только этот самый Windows NT Explorer и именно для получения этих самых иконок. Представьте, как надо было (в хорошем смысле) упороться, чтобы даже тут сэкономить пару байтиков и тактиков.

Кстати, задать этот самый каталог отдельным параметром можно исключительно через Native API.
читаем КАЖДЫЙ файл в папке
Проверяем прочитанное антивирусом.
Так что там реально есть чему тормозить.
… провели поистине гигантскую работу по оптимизации
Действительно, работа титаническая. К сожалению, система всё больше забывает о пользователе, уходя в себя надолго даже на мощных конфигурациях.
Неплохо бы ставить приоритеты, например, сначала отображаем список файлов, потом подтягиваем подробности (если они к тому времени будут актуальны).
И чтобы Диспетчер задач можно было вызвать в любой момент, а не по окончании перерисовки всех страниц в Хроме.
читаем КАЖДЫЙ файл в папке

Проверяем прочитанное антивирусом.

Ух, антивирусы это отдельная печаль, причем как раз на открытие файла и ураганят в основном :-)

К сожалению, система всё больше забывает о пользователе, уходя в себя надолго даже на мощных конфигурациях.

С тех пор парадигма сменилась, лагерь Раймонда Чена с его вниманием к оптимизациям и совместимости давно отодвинут от руля, вперед идут молодые и горячие. Которые выросли в другую эпоху, для них те вещи которые еще 10-20 лет назад были «долго и дорого» — не стоят ничего.

Неплохо бы ставить приоритеты, например, сначала отображаем список файлов, потом подтягиваем подробности


(смеется) а все эти асинхронные и реактивные программирования, весь этот второй рассвет функциональщины, монад и чистых функций — они для чего нужны? Вот именно для этого. Чтобы «само» по очереди, не тормозя остальных.

(в раздумье — ставить тег sarcasm или нет, а то шутка получилась не совсем шуткой)

Async/Await-изация головного мозга (С). Вместо того чтобы делать алгоритм эффективным — его размазывают тонким слоем, и пусть тормозит :-)

Впрочем и ООП (OOA/OOD по Г. Бучу) тоже не для блоатвари придумывалось, а «получилось как всегда» (С).

И чтобы Диспетчер задач можно было вызвать в любой момент, а не по окончании перерисовки всех страниц в Хроме.


Кстати тут вообще элементарно должно было быть, при старте — залочить от свопа пару регионов ОЗУ с кодом и данными, поставить приоритет повыше, и будет всегда мгновенно переключать, тьфу и растереть. Почему нету за столько лет — непонятно.
С тех пор парадигма сменилась, лагерь Раймонда Чена с его вниманием к оптимизациям и совместимости давно отодвинут от руля, вперед идут молодые и горячие.
Но выход, конечно, есть! Молодых и горячих, не терпящих оптимизаций, усадить за $100 OLPC, и да пребудет с ними Сила (оптимизации).
Или указывать в системных требованиях коммерческого продукта честный актуальный конфиг машин разработчиков.
Чтобы смайлики в BSOD стали еще и анимированными? :-)

Увы, BYOD — и это будет топовый мак про, а ужастик- будет пыль собирать. Раньше на маках сидели только топы, а так — сядут еще и разработчики с тестировщиками.

Зато будет вероятен порт вижуалстудии под мак :-)
UFO just landed and posted this here
Зеленая полоска в адресной строке проводника, это просто новая форма песочных часиков. Она прогресс не показывает, просто дает понять пользователю, что система там что-то делает.
Что касается прогресса получения изображений, это хорошо заметно на медленном диске, например, сетевом. Он прочитал несколько имен файлов, начал тянуть их для получения превью. Потом ещё несколько имен, снова тянет превью. Очевидно, это два параллельных потока, но сделано откровенно не продуманно, т.к. быстрая задача, после которой пользователь мог бы продолжить работу (получение списка файлов) затормаживается до окончания самой медленной и к тому же необязательной операции (вытянуть все файлы на предмет формирования превьюшек).
Замечал, Far тоже сигнализирует проводнику прогресс.
Вообще, прогресс-бары в современных Windows — отдельная грустная песня. Раньше у данного компонента был один входной параметр — Progress, в %. Что там сейчас — не знаю, но именно к степени близости процесса к окончанию оно отношения не имеет. Обычно получаем бессмысленную анимацию, отражающую только факты, что, скажем данная инсталляция ещё не зависла и не закончилась.

Теперь там два параметра. Первый как раньше, а второй означает режим: либо %, либо анимация.

Довольно неожиданно.
UFO just landed and posted this here

Что-то вы путаете, это раньше прогресс-бар прыгал до 90%, а потом еле шевелился...

Раньше он (иногда) мог и больше 100% показать
Всё логично, проводник иногда при копировании показывает отрицательное время.
Обычно получаем бессмысленную анимацию, отражающую только факты, что, скажем данная инсталляция ещё не зависла и не закончилась.
На самом деле инсталляция давно уже зависла и упала, анимация — это гифка загруженная в отдельной инстанции браузера (тоже зависшей, анимация отображается средствами ОС), который занимает 70 мб (на 64-битных системах — 110 мб) из 72 мб (на 64-битных системах — 250 мб) размера инсталлятора.
Проверяем прочитанное антивирусом.
Современные антивирусы сохраняют контрольные суммы проверенных файлов, а также используют возможности файловой системы NTFS, чтобы не проверять один и тот же файл слишком часто.
Все чаще посещает мысль, что если на современный комп поставить win98 и какой-нибудь офис 97, то получившееся простое рабочее место — печатная машинка, будет работать значительно быстрее и комфортнее, чем вот эти современные офисы 365 со всякими кортанами.
Я один такой ретроград, который не видит всех этих новых удивительных возможностей современных операционных систем для десктопов?
Если не рассматривать проблему браузеров, то слушать музыку и смотреть фильмы успешно можно было уже в 98 году. Для HD-видео в то время не хватало процессора, сейчас с этим проблем нет.
Ещё отдельной проблемой идет 3D, когда для новых графических функций, шейдеров, нужен был новый directX, который требовал новую версию ОС.
В целом революционных изменений на десктопах нет, поддержка тачскрина и жестов там не нужна, но мы все равно забабахали вам плитку на весь экран на серверной версии…

Я как-то пробовал установить win95 на более-менее актуальный комп. Началось с того что он не понимал NTFS, и пришлось форматировать в FAT. Потом пришли проблемы с драйверами, а точнее их отсутствием. Из-за отсутствия драйверов винда "не понимала" ни нормального разрешения экрана, ни вещей вроде USB (как впрочем и половину других разъёмов материнки).


В общем я поигрался и бросил эту затею :)

так usb win95 стала понимать в каком-то сервис паке только, чо сразу Гейтс-то

Это не претензия к Win95. Я скорее о том что поставить какую-нибудь "старую добрую версию" винды и работать на ней тоже скорее всего не особо получится. К сожалению :)

Неудивительно, учитывая, что с 95 мы уже пришли к пределу закона Мура.

Как и собрать заново ракету лунной экспедиции Сатурн. Вроде делали их, и не одну. А снова сделать точно такую же или с минимальными доработками — зась. Нет смысла.
Поставить это полбеды. На устаревшую ОС просто нет (либо очень сложно найти) браузера, который сможет работать с современными сайтами

Для таких вещей можно было бы использовать виртуальную машину.

На современном компьютере вы упрётесь в драйвера. Уже даже семёрку иногда становится не так просто поставить.

На счёт 97 офиса — некоторых интерфейсных плюшек от более поздних версий всё же не хватает.
А видео? Ну и «мышь сходит с ума», «только в режиме DOS-драйвера» и т.п. я бы не стал считать нормальной работой.
Было бы очень интересно почитать хорошую статью на тему «что там технически (а не маркетологически) такого особенного в драйверах, что их нельзя производить под все распространённые ОС».
Где бы реквест разместить.
Вангую ответ
«человекочасы, больше ничего»
Есть энтузиасты, неторопливо пилящие универсальные драйвера. В случае, если новые функции или структуры данных отсутствуют в старой оси, например xp, описывают структуры, добавляют функции или заменяют заглушками.
Есть программы, чаще бесплатные, имеющие драйвера, работающие в практически любой версии Windows, например HWiNFO. У неё даже версия для DOS есть.
Забавный факт о hwinfo: кидает в синий экран сервер на supermicro с raid-контроллером Adaptec (всё старое), под плиточками (Windows 2012). Тот же сервер в той же ситуации под 2003 вёл себя прилично.
Очень полезное обновление ОС, что и говорить.
Так и пишут. Вопрос в том, с какого процента пользователей прибыль от них окупает затраты на написание и поддержку.

У Windows 98 менее 0.01% рынка, это считается «распространённой операционной системой»?
Я бы не назвал 98 распространенной ОС. ;)
Ну да, стараниями корпорации-производителя.
Но производительность труда во временной период с Windows 98 до Windows 10 выросла (и то не факт, кстати) не благодаря якобы современным и чрезвычайно полезным технологиям в более новых ОС. Многие пользователи до сих пор впадают в шок при предложении воспользоваться поиском на локальном диске, никакие плиточки это не исправили.
Недавно мне подарили живой 286-й дектопчик Olivetti. Там был DOS, Norton Commander и Windows 3.1. В это трудно поверить, но я был буквально шокирован тем, насколько мгновенно эта антикварная машинка откликается на действия пользователя. Без всяких SSD, многоядерности и гигабайтов RAM: загрузка программ, работа меню — всё очень быстро, никаких раздражающих лагов. Это удивительно, учитывая, что в 90-е я такой техникой вовсю пользовался. Вроде должен помнить…

Выходит, за последние 30 лет подо всеми визуальными красотами мы напрочь забыли, как должен работать UI здорового человека. Да, я понимаю бездну, отделяющую однозадачный DOS от Win10, но чёрт возьми, никогда не поверю, что все эти лаги современных OS абсолютно неизбежны.
Вот-вот. Я помню как мне принесли 486 с 12мб памяти чтоли в 2006 году.
Это был просто зверь, 95 там летала, как не летала XP на современных тогда Атлонах и P4 с гигом оперативки. Ворд открывался почти моментально, без шуршания на диске.
Сейчас остаётся только с сожалением вспоминать те времена.
У меня в 97 году был 486й с 8мб и Windows 95 отлично работал.
Потом у меня долго время был Pentium II с 32мб и Windows 2000 и все было хорошо.
Сейчас у меня mac и он съел 16гб и хочет еще.

Эти 16 гб съел, наверное, хром.

Я вот всё смотрю на эти бесконечные посты о прожорстве хрома и не понимаю о чём речь (точнее, понимаю, конечно). Мне моих 16 хватает всегда с головой, сейчас хром "стабильно" резервирует 3.65 и больше не просит.
Осмелюсь предположить, что дело в кол-ве вкладок. У меня их сейчас всего 12 + где-то столько же расширений разного рода. А не 150. ЧЯДНТ? Может, всё-таки, проблема не в Хроме? Может надо, наконец, научиться пользоваться закладками read-later-ами и прочими инструментами, которые просто наводят порядок, речь даже не об оптимизации использования памяти (об этом я как-то мало думаю, оно само).
Может показаться что 3.65 это дофига на всего 12 вкладок, но это ± константное значение и в моменты рабочей нагрузки в виде ≈30 вкладок, которые закрываются в течении получаса (ибо нефиг). И Хром по природе использования макбука перезапускается только при обновлении. То есть живёт неделю-две.
Простите, вырвалось.

Сопоставьте ваши 16 с минимально требуемым 1 ГБ.
Реальный минимум сейчас 8. И при 8 же можно отключить свап, всё зашевелится заметно быстрее и перестанут протираться дырки в hdd/ssd (офис без фотошопов).
Ещё весной можно было работать без свапа на 4 ГБ, сейчас стал любой браузер на четырёх вкладках вылетать, а со свапом половина времени уходит на него.

Не, это-то я понимаю (есть рациональное зерно, да).
Но ведь все вокруг говорят, что у них 16 выжираются в ноль и переходят на 32 и 64. И их, якобы, не хватает.
Так мне 16 хватает и на хром и на IDEA, которая тоже не закрываясь живёт неделями.

UFO just landed and posted this here
У Хрома сознательная политика — все, что можно кэшировать, будем кэшировать, все что можно буферизовать, будем буферизовать. Поэтому, соответственно, он постепенно использует всю доступную ему в системе память.

Да, об этом я слышал, но, честно говоря, никогда не наблюдал.


а под Linux так разработчики Хрома ее вообще сломали и выпилили несколько лет назад, и не хотят мержить обратно мои патчи её возвращающие

А как дела с Chromium? Используете свой билд с патчем?


Я полагаю, билд для OSX больше схож с билдом для линуксов, чем для Win. Или есть различие в этой самой "определялке memory pressure"? Праздный интерес.

UFO just landed and posted this here
Интересно, Memory Pressure как-то различает физическую и виртуальную память? Т.е. в системе с малым объёмом физической памяти и большим свапом он убережёт Хром от чрезмерного аппетита?
UFO just landed and posted this here
Спасибо. А есть ли доступные настройки? Нагуглил:
chrome://flags #memory-pressure-thresholds
но, похоже, убрали как из Хрома, так и из Канарейки.
UFO just landed and posted this here
UFO just landed and posted this here

Скорее так — Firefox лучше справляется с ненормальным пользованием браузером и полным хаосом в виде бесконечного числа вкладок выкидывая из памяти неактивные или те, которые давно не открывались.
Проблема самого факта сотни вкладок при этом никуда не девается.

А давайте вы не будете за меня решать как мне вкладками пользоваться?

Лет 10 назад во время распродажи на одном сайте я делал следующее: брал список товаров (250-300 наименований) и открывал все в соответствующем количестве вкладок. Тупо скриптом. Потом брал ноут под мышку и в метро (тогда в метро WiFi не было) отбирал интересное мне — просто нажимая Ctrl-Tab и Ctrl-W.

Сейчас, ради интереса, попробовал то же самое сделать. И вы, знаете, получилось! Правда есть одно маленькое отличие: 10 лет назад я это на ноуте делал и он не перегревался от этого. Сегодня моя рабочая станция вошла «в режим турбореактивного двигателя» (в который она обычно входит, когда я что-то компилирую), Chrome занял несколько десятков ядер и больше 100GB памяти.

А что я в обмен получил? Кучу дизайнерских изысков? А нельзя ли их того, в попу? И вернуть мгновенный отклик? Мне он гораздо больше нравится, чем всё эти, нафиг мне не нужные, дизайнерские изыски…
А что я в обмен получил? Кучу дизайнерских изысков? А нельзя ли их того, в попу? И вернуть мгновенный отклик?

Ну это, понимаете ли, решает спрос. Всё-равно что требовать интересные текстовые квесты вместо этих чертовски красивых игр с тупым бездумным сюжетом.
Люди хотят красиво, люди хотят интерактивно со всеми этими новомодными свистоперделками. Маркетинг он же тупой, что деньги приносит, то и требуют от девелоперов. Унылые магазины без капли js нынче, очевидно, не приносят прибыли.
ЗЫ А ещё дешевле разрабатывать, конечно.

Люди хотят красиво, люди хотят интерактивно со всеми этими новомодными свистоперделками.

Да не хотят люди свистоперделок. Люди хотят от магазина, чтобы там было просто и удобно найти товар, почитать про него, сравнить его и купить его, только и всего. И чтобы он не тормозил при этом.
Проблема в том, что зачастую, как вы написали,
Маркетинг он же тупой

Компании неплохо оценивают потребности людей в товаре, но что касается пользовательского дизайна интернет-магазинов и т.д. никто толком не погружается в потребности пользователей. Сайты разрабатываются так, чтобы картинка нравилась кому-то из боссов, только и всего. В лучшем случае ещё SEOшника послушают.
Чтобы в этом убедиться, понаблюдайте как-нибудь, например, за процессом разработки логотипа компании. Там обычно будет на пару месяцев обсуждение между боссами, маркетологами и дизайн-студией цветов, закорючек, о том, какой посыл для пользователей несёт какой завиток, штырёк и финтифлюшка.
Потом ради интереса можете у любого участника дискуссии спросить, например, какие марки одежды они носят или какое кофе предпочитают. А потом попросить нарисовать их логотипы. Никто ничего не вспомнит, кроме может быть лого ЛаКоста, ещё помнят Кока-колу, Пепси, МакДональдс и лого автомобилей. Они даже логотипы своих партнеров хрена с два нарисуют (ну, дизайнерское агентство нарисует, да). А так, они в здравом уме и сознании будут тратить кучу денег и времени на разработку штуки, на которую по факту будет глубочайше наплевать всем их клиентам/партнёрам. Так же и с дизайном магазина. Многие уделяют кучу времени на разработку вторичных, никому не нужных вещей, в ущерб основному и востребованному функционалу.
Унылые магазины без капли js нынче, очевидно, не приносят прибыли.
Ага. И если страница в Юлмарте занимает 10 мегабайт, а в НИКСе 1 мегабайт, то НИКС будет в 10 раз более популярен. Ага-ага.

На самом деле как раз Интернет магазины — не очень показательны, потому что ими пользуются независимо от дизайна: цены и быстрая доставка важнее.

Лучше посмотреть на вещи, для которых дизайн действительно важен: Skype там или Digg. Я не знаю ни одного случая, когда пердосвистелки приводили что-либо к успеху — зато полно случаев, когда они приводят к тому, что пользователи тупо сбегают. Да, блин, посмотрите на Windows 8 и 10: если бы людям действительно были интересны пердосвистелки, то не пришлось бы их варивать чуть не под дулом пистолета.

Просто на всю эту муть, как правило, находятся деньги, когда дело и так идёт на лад — ну и при должном обхаживании ушей начальства можно убедить его что это всё от пердосвистелок.

ЗЫ А ещё дешевле разрабатывать, конечно.
Нет, главное — марекетологи могут «осваивать бюджет».

Всё не так просто. Кажется, что оно действительно не нужно, не важно и лучше б открывались статические страницы по 200кб. Но небольшой нюанс в том, что при прочих равных (а на ценах играть ой как не просто), для конечного потребителя будет играть привлекательность и простота в использовании. Например, лет с 10 назад у нас (в Украине) была куча однообразных магазинов. Но выстрелил тот, у которого интерфейс был поприятнее, и у которого фильтр удобный. Это потом он уже стал де-факто основным (сейчас продаёт не только свой товар, типа яндекс маркет, чтоли). Магазин при этом не является самым дешёвым, и доставка сейчас в нём удобнее только по той причине, что он основной (раньше не было особо разницы). При всём при этом, можно пойти в соседний и взять там дешевле. Но вот, зараза, к этому (как к основному), вроде и доверия больше. Такие дела.
А потому что — удобный фильтр. Потому что список желаемых товаров. Отслеживание поступления. Потому что ± нормальное заполнений характеристик и сравнение по характеристикам. И динамическая подгрузка списка. И много ещё всяких удобных штук, реализованных на клиенте.
И потому что можно было не делать так:


Лет 10 назад во время распродажи на одном сайте я делал следующее: брал список товаров (250-300 наименований)

Это можно было делать сильно проще и удобнее.


Основной вопрос не как быть привлекательным для клиента. А как выделиться перед тем магазином, который уже привлекательным является. Просто упростив интерфейс до минимума сегодня уже не сработает. Почему — это другой вопрос. Это, наверное, может сделать только условный монополист, уже состоявшийся магазин с именем и потоком клиентов.


cc DrPass логотип не самый удачный пример. Логотип это чистое ЧСВ. Как крутой логин себе придумать или аватарку нарисовать.

Просто упростив интерфейс до минимума сегодня уже не сработает.
Есть разница между «упростить интерфейс» и «оптимизировать производительность». Некоторые упрощают так, что остаётся две кнопки, а тормозит на порядок-два сильнее из-за десятков слоёв всяких реактов, вью и прочих ангуляров.
Например, лет с 10 назад у нас (в Украине) была куча однообразных магазинов. Но выстрелил тот, у которого интерфейс был поприятнее, и у которого фильтр удобный.

Ну не совсем так. Розетка выстрелила тем, что едва не единственная из всех вложилась в рекламу, причем на ТВ. И в итоге получила огромный бонус в виде тех клиентов, которые раньше вообще ничего не покупали в интернет-магазинах. А тут о-па, цены оказались заметно ниже, гарантия, сервис — всё присутствует. В общем, тут тупо победил тот, кто на старте инвестировал в раскрутку больше денег.
Основной вопрос не как быть привлекательным для клиента. А как выделиться перед тем магазином, который уже привлекательным является.

Знаете, как среднестатистический клиент интернет-магазина выбирает между ними?
Есть три основных пути:
1. Заходит на сайт того магазина, где брал что-то в прошлый и понравилось, и сразу покупает там.
2. Кто попродвинутее — открывает агрегатор цен вроде Яндекс.Маркета, или Хотлайна в случае Украины, ищет там самое выгодное предложение, покупает по нему.
3. Кто про агрегаторы не в курсе, гуглит «купить такую-то штуку», и выбирает самый дешевый вариант из того, что предложил поисковик.
При этом во втором и третьем кейсе клиент может уйти из интернет-магазина без покупки, если там кривой/глючный/непонятный интерфейс или он просто сильно тормозит, и перейти к следующему по списку.
При этом на дизайнерские изыски клиент вообще никакого внимания не обратит, он даже и не запомнит там ничего. Наоборот, чем интерфейс будет стандартнее (слева категории товаров и фильтр, в карточке товара слева фото, справа кнопка «купить», ниже табы с описанием/характеристиками/отзывами, вверху корзина и т.д.), тем больше вероятность, что он его купит. Соответственно, чем больше сайт магазина вложился в разработку уникального дизайна UI, тем меньше у него будет конверсия :)

Касательно мессенджеров достаточно посмотреть на модные ныне стикеры. Это не просто свистоперделки, это свистоперделки в вакууме. Скайп просто сильно устарел, как в своё время icq.

icq не закрывал протокол, хотя был его разработчиком. Была куча совместимых клиентов, Miranda, например. И мессенджер долго пользовался популярностью даже после того, как родным клиентом стало пользоваться совершенно невозможно. Скайп же давно топчется у этого порога.
icq не закрывал протокол, хотя был его разработчиком
Он его как раз закрывал и регулярно менял. В попылках извести сторонние клиенты.

И мессенджер долго пользовался популярностью даже после того, как родным клиентом стало пользоваться совершенно невозможно.
Примерно до того момента, когда они стали менять протокол настолько часто, что пользоваться сторонним клиентом стало почти невозможно, а родной они изуродовали до этого так, что это тоже не был разумный вариант.

Убили сами себя, по большому счёту.
Закрывал, менял, но года три назад ещё можно было читать аську клиентом на асме весом в 2 КБ, отсылать правда давно нет. Миранды исправно апдейтили протокол.
А сколько есть альтернативных клиентов для Skype?
А сколько есть альтернативных клиентов для Skype?
Для Skype есть только альтернативные мессенджеры. Так что ситауции, когда оффициальным клиентом пользоваться уже нельзя, но народ пересаживается на неоффициальные и продолжает пользоваться у Skype не будет.

В результате народ уходит. Просто уходит.
А ещё дешевле разрабатывать, конечно.

Скорее имелось в виду, что для того, чтоб сделать быстрый, функциональный и не жрущий ресурсы сайт, нужно влить в него дополнительно денег и времени (то есть, ещё больше денег, уже недополученных от несвоевременного запуска). Или изначально нанять синьоров, которые без потери времени (но естественно, с потерей денег) сделают.

Ещё вы получили уйму шифрования и прорву кликов по кому-то нужным ссылкам.
Зато теперь ноут можно с собой не носить — в метро есть 4G, а rdp на домашний сервер можно и с телефона ходить.
Можно добавлять в системные требования профиль «Оптимум»: 32 ядра, 128 ГБ ОЗУ.
Не надо сказки рассказывать. На 8Мб Чикага _запускалась_. Что-либо серьёзное запустить в ней уже не всегда удавалось.
Я на четырех в оной «чигаге» на спор запускал ворд, а в нем вставлял по OLE эксель. Диском шуршало минут пять, но справилось. Причем весь «тюненх» был в том что я убрал нескучную обоину размером 800 на 600 16-бит, и поставил однотонную заливку.
Не надо сказки рассказывать. На 8Мб Чикага _запускалась_.

Не надо сказки рассказывать (с). В 1996-м году эти 8Мб были самым обычным объемом памяти для компьютеров. На них Чикага абслютно нормально работала, а OSR2 было тесновато, но тоже работало. По крайней мере, Word 95, Excel 95, Delphi 2 — всё это там достаточно комфортно вертелось.
Ну ни разу не комфортно. Помню я редактирование монографии в Word 95 на 486DX4-100, это было весьма неторопливое занятие.
TurboPascal вот отлично работал, было дело… ;)
До монографии я тогда не дорос, но курсовую на 120 страниц (плюс картинки, таблицы) в Win95 на Pentium-150 с 8 метрами памяти я набирал. 120 страницЭ естественно, вышло за счет того, что мне нужно было исходный текст программы включить в пояснительную записку. Вполне годно было. Хотя уверен, монографией с кучей формул/объектов его было бы несложно ушатать.
Я тогда еще в школе учился, а после школы к маме на работу ходил, ведь там был комп(!). И с версткой монографий помогал, и на паскале учился писать, и в Героев играл…
Линукс даёт очень большой простор для урезания/неустановки ненужных фич. Не DOS, конечно, но всегда можно сделать так, чтобы он летал на самом дохлом железе.
UFO just landed and posted this here
Если всё настолько плохо, можете использовать vim/emacs/nano и lynx.
И это — не предел. Линукс даёт очень большой простор для урезания/неустановки ненужных фич.
Десктопные UI это ещё ничего. Вот кто бы объяснил мне, о чём задумывается компьютер в терминале Макдональдса. Когда тычешь пальцем в кнопку с гамбургерами, а новый экран открывается не быстрее, чем через 2-3 секунды.
Мак по 5 сек это еще нормально, бургеркинговский может минут на 5 зависнуть запросто. я однажды решил воспользоваться, он завис, спросил кассира «ну подождите, он у нас несколько минут думает. ну или я могу ваш заказ принять» на мой закономерный вопрос «а что тогда должен экономить этот терминал?» кассир ответа не нашла)
Там КМК просто браузер, скорее всего с выключенным кэшированием. Ждет контента от центрального сервера по какой-нибудь мобильной GPRS связи…
Который скорее всего еще и крутится на неттопе с первым Атомом, или чем вроде.
Ну как: идентифицирует вас через фейсрекогнишн на сервере в китае, потом лезет через облако в штатах на ваш банковский счёт на арендованном сервере в нидерландах, и пытается нейросетью (на серваке в грендандии, там дешевле, потому что холодно) выяснить, какой бутер вам ещё предложить, чтобы с вероятностью более 50% вы его таки взяли.
Надеюсь, что сарказм.
а уж про терминалы для покупки билетов/пополнения тройки в московском метро и вспоминать страшно
Выходит, за последние 30 лет подо всеми визуальными красотами мы напрочь забыли, как должен работать UI здорового человека.
Нет, всё произошло, во-первых, не за 30 лет, а всего лишь за 10-15, а во-вторых «в действительности всё совсем не так, как на самом деле».

Вот возьмите этот самый Windows 3.1 — под какое железо его разрабатывали? Ну известно, под какое: IBM PC AT, 80286, 6MHz. А DOS и Norton Commander (у вас ведь там на 4я-5я версия, да?) — так и вообще под IBM PC, 8086, 4.77MHz. Кстати даже Windows 3.1 Beta на IBM PC, 8086, 4.77MHz встаёт — поддержку этой железяки выкинули буквально перед самым релизом, когда стало уже понятно, что там оно всё работает как-то неприлично медленно.

А ваш Olivetty имел проц на 20-25MHz, плюс быструю память, наверняка — то есть как минимум раза в 3-4, чем то, подо что всё это разрабатывалось. И в 10 раз быстрее, чем то, подо что планировалось.

А в 90е — так разница могла в 10 раз реально быть (80386DX 25MHz vs 486DX4 100MHz — соответственно подо что Windows 95 разрабатывалось и на чём она, обычно, работала).

Разумеется при такой разнице между ожиданиями и реальностью всё «летало».

Я кстати не зря про Norton Commander 4-5 вспомнил. Olivetty у меня нет, но есть PCem, он неплохо эмулирует старое железо — вплоть до скорости работы (хотя жёсткий диск там бесконечно быстрый, конечно). Так вот попробуйте запустить Norton Commander 5.5 под эмуляцией IBM PC XT… И вы офигеете от его томознутости. А ведь он, как бы, под это железо, теоретически, «заточен»…

Так что… Разучились делать нормальные интерфейсы люди где-то в середине 80х (когда железо начало резко ускоряться и лёгкие программы с треском вылетали с рынка, а на их место приходили тормоза… которые пользователи не ощущали как тормоза из-за резкого буквально «взлёта» производительности железа).

Ну а дальше, когда вся индустрия за десятилетия оказалась заточена строго и исключительно под выпуск тормозных монстров… случилось страшное: где-то с 2005го года скорость однопотока, вдруг, резко «встала» (современный процессор в однопотоке быстрее Pentium 4 на 3.8GHz десятилетней давности раза в 3, от силы… это за 10 с лишним лет!). UI это, в основном, однопоток (даже сегодня), всё сериализовано, ваши 8-10-20 ядер могут отдыхать… Ну и… имеем то, что имеем.

С точки зрения-то разработчиков почти ничего не произошло: на топовом железа всё это и 20-30 лет назад и сегодня работает «сносно», а вот у пользователей — беда: раньше они задёшево покупали железо, в несколько раз быстрее, чем те «монстры» на которых это всё разрабатывалось… а теперь они и то, что видел разработчик (и подо что всё и «заточил») — не могут себе позволить.
Если компьютер использовать только как тупую печатную машинку, то можно открыть любой тупой текстовый редактор и радоваться, почему бы нет. Другое дело, что захочется функций которых в тупом текстовом редакторе нет, но их и в 97м не было
Но мс офис 97 был вполне съедобен. Офисные пакеты вообще обычно средним пользователем используются на 5% от возможностей, что тогда что сейчас. Может в экселе можно было упереться в 16384 строк ограничения против нынешних бесконечных, а так я наверно больше не знаю чем нынешние пакеты лучше чем те.
UFO just landed and posted this here
Не повторяйте эту ерунду про 5%. Кто это посчитал, откуда цифры?
Не знаю как там «средний пользователь», но моя контора, не имеющая отношения к IT постоянно использует в MS Office:
1. VBA макросы, без него жизни нет;
2. Поля вроде как здесь;
3. Условное форматирование в Excel;.
4. Формулы в последних Office стали нормальными, с ужасом теперь вспоминаю MathType.
5. Inquire в Excel.

5% и «средний пользователь», это если 95% пользователей только просматривают документ и им достаточно одной функции — просмотр, но это не работа с документом.
VBA, поля, автонумерация, условное форматирование были давно.
Другое дело, что VBA несколько раз с тех пор ломали меняли.
Inquire не использовал.
Проблемы с формулами MathType были связаны с интеграцией в офис чужого платного продукта, с перекладыванием лицензионных тонкостей на плечи пользователей. Зато сейчас формулы написаны на Java.

К ограничению количества строк в Excel, упомянутому balamutang добавлю малое количество доступных для отображения цветов (недавно пришлось делать градиентные заливки в старом Excel).
Я про использование функций, а не про «давно было».
А не знаете есть у них нормальный багтрекер? а то давно подрывает на реддине начать сабреддит «What a fuck Microsoft?».
Багтрекер не подскажу, извините.

А добавить про «давно было» могу.
Обращался когда-то в техподдержку. Пользователь нечаянно удалил в общей папке подпапку с кучей файлов. Восстановили из архива. Руководство спросило, можно ли запретить удаление. Конечно можно, есть отдельный атрибут NTFS, запрещающий удаление файла!
Ставлю. Пользователи жалуются, что не могут нормально редактировать файлы офиса. Разбираюсь — при записи отредактированного файла сначала создаётся новый временный файл с уникальным именем, в него сохраняется новое содержимое, затем удаляется старый файл, а новому присваивается его имя. Т.е. присутствует операция удаления файла, которая запрещена. Предыдущая версия офиса позволяла настраивать путь к временным файлам, новая (на тот момент) писала их строго в папку, откуда открывала редактируемый файл (т.е. сетевую).
Запрашиваю техподдержку, как быть. Есть два оплаченных продукта (офис и ос), в них есть нужная функциональность, но из-за изменений в одном из продуктов корректное совместное функционирование невозможно. После недели переписок ответили, что мой запрос выходит за рамки пользователькой поддержки
Извините, я вот не очень понял в этой истории — каким образом к проблеме удаления и переименования затем временного файла (я знаю про этот момент, т.к. у меня включен показ скрытых файлов, и я часто редактирую файлы прямо с рабочего стола) относится возможность задавать путь ко временным файлам?.. Потом после закрытия программы офису ведь всё равно придётся удалить и перезаписать оригинальный файл, где бы он ни был.
В сетевой папке появляется ещё один файл (временный), который потом нужно удалить.
А исходный файл удалять необязательно, достаточно усечь его до нулевого размера и записать новое содержимое. Противоречия с установленными атрибутами при этом не возникает.
А временные файлы вообще странно держать на сетевом диске.
А временные файлы вообще странно держать на сетевом диске.
Поведение, которое описано выше (создать новый файл, записать туда, атомарно переименовать временный файл в файл под старым именем) — это единственный способ атомарно заменить содержимое файла на другое. Потому редакторы так и делают. Разумеется для реализации этой схемы временный файл должен создваться на том же диске, куда записывается документ.

А исходный файл удалять необязательно, достаточно усечь его до нулевого размера и записать новое содержимое.
Только тогда есть шанс, что вы, в какой-то момент, потеряете свой файл вообще, если сеть отвалится в неподходящий момент. Если вы его усечёте, а новое содержимое записать не успеете. Или вам места не хватит, чтобы это сделать. Или ещё чего-нибудь в этом же духе.

P.S. В Linux, кстати, этой проблемы нет. Ибо там всё сделано правильно: файл, который нельзя удалять нельзя ещё, при этом, и менять. Что разумно. А вот не давать возможность файл удалять, но давать возможность его менять… это бред.
Имела место попытка приспособить возможности имеющегося ПО для получения дополнительной функциональности, в целом удавшаяся.

Потерять один/несколько файлов обидно, но потерять соседнюю невиновную папку с проектом в тысячи файлов чуть обиднее. Конечно, бэкапы никто не отменял.

Получить желаемую функциональность всё же было возможно. Если не наследовать права для вновь созданных файлов, временный файл благополучно выполнил бы свою функцию и был бы удалён, а старый файл был бы усечён и переписан новым содержимым, не потеряв атрибутов. И с новым автором, которому можно было бы адресовать вопросы по правомочности замены старого документа. Но не в случае удаления старого файла.
Получить желаемую функциональность всё же было возможно.
Нет.

Если не наследовать права для вновь созданных файлов, временный файл благополучно выполнил бы свою функцию и был бы удалён, а старый файл был бы усечён и переписан новым содержимым, не потеряв атрибутов.
Ещё раз: нельзя атомарно «усечь и переписать новым содержимым, не потеряв аттрибутив» файл. В принципе. Никак. Microsoft аж даже целую новую файловую систему пытался учудить, чтобы решить эту проблему.

Потому что там мнооого проблем: размеры файла, вообще говоря, очень велики, запись его может занимать длительное время, так что обеспечение атомарности, мягко говоря, нетривиально.

А вот заменить метаданные (заменить один файл на другой) атомарно — вполне возможно, NTFS это умеет, как и большинство других современных файловых систем.

Потерять один/несколько файлов обидно, но потерять соседнюю невиновную папку с проектом в тысячи файлов чуть обиднее.
И то и другое прекрасно осуществляется даже после ваших изменений с помощью чудесной программу WipeFile (из комплекта Norton Utilities). Так что я понимаю обе стороны — и вас, пытающихся из имеющися средств накостылять что-то, и разработчиков, которые не хотят тратить время и силы на поддержку странной и редкой комбинации опций, которые реальной безопасности не дают всё равно.
Ну защита делалась не от целенаправленных действий, а от неосторожных действий коллег.
За ликбез спасибо.
UFO just landed and posted this here
В Linux, кстати, этой проблемы нет. Ибо там всё сделано правильно: файл, который нельзя удалять нельзя ещё, при этом, и менять.
Там просто более бедная система прав.
Что является не недостатоком, а достоинством. Потому что система прав — она, как бы, о безопасности. А безопасность — штука странная. Иногда лучше не иметь возможность вообще, чем иметь её и порождать странные последствия.

А вот не давать возможность файл удалять, но давать возможность его менять… это бред.
Это просто дополнительная возможность.
Вот только эта «дополнительная возможность» порождает проблемы, как мы видим.

P.S. Собственно именно это стоит в основе решения разработчиков Chrome регулярно удалять фичи — несмотря на недовольство определённой части пользователей. Потому что бесконечная гибкость ведёт к бесконечному же количеству багов…
UFO just landed and posted this here
Потому что бесконечная гибкость ведёт к бесконечному же количеству багов…
Ой, ну вот не надо таких вбросов! В Opera 11 была тонна возможностей, а багов почти не было от слова «совсем». Хромом вообще порой невозможно пользоваться без слёз, когда нужно что-то большее, чем просто навигацию по страницам, закладки и историяю
А вот не давать возможность файл удалять, но давать возможность его менять… это бред.

Это не бред в случае папок. Точнее, защита от случайного удаления пользователем единственной доступной ему для записи папки.

Всё равно бред. Чтобы иметь возможность удалить папку вам недостаточно иметь права в этой папке — нужно иметь доступ к объемлющей папке. Так что удалить самую распоследнюю папку, куда вы можете писать вы, таким образом, не сможете.

Тем не менее, именно это я однажды проделал в школе. Но как именно там были настроены права — не смотрел.

Это было под Windows или Unix? Под Windows ещё и не такие чудеса можно проделать. Именно потому что при создании системы прав думали о «гибкости», вместо того, чтобы чётко продумать — как, кто, когда и для чего это будет использовать.
Именно потому что при создании системы прав думали о «гибкости»,

такая приятная гибкость образовалась!
UFO just landed and posted this here
Недавно помогал редактировать формулы в чужой диссертации, сведённой из нескольких документов разных лет, написанных в разных версиях офиса. Для возможности редактирования формул старого MS Equations офис любезно предложил загрузить пакет, который оказался на основе Java. Триальная версия на 30 дней позволила отредактировать документ, но работала на двухъядерном ноутбуке с ssd и 8 ГБ ОЗУ ожидаемо неторопливо.
UFO just landed and posted this here
MS когда-то интегрировала сторонний пакет Equations (облегчённую бесплатную версию) в свой продукт, поленившись написать самостоятельно. Пользователь с помощью MS Office написал сложный документ с множеством формул. Теперь эти формулы превратились в тыкву, а MS, не имеющий исходников Equations и возможности их перекомпилировать и вставить в современный офис, предлагает использовать другой платный продукт, написанный на Java.
UFO just landed and posted this here
сведённой из нескольких документов разных лет, написанных в разных версиях офиса

У нас в таком случае — получился документ с картинками формул! )))
win98 сваливалась в синий экран в любой удобный момент и было крайне желательно её переустанавливать время от времени. J3QQ4, ага
J3QQ4

… прошло 20 лет, а я помню этот долбаный 25-символьный код наизусть
Причем свалиться в BSOD или зависнуть она могла не только от проблем с железом или в ядре ОС, но просто от косяков допущенных в любой из запущенных на ней программ сторонних производителей.
У нас в школе на компах до осени 2008-ого года стояла Windows 98 SE. В основном пользовались на ней Borland Pascal 7.0, Office 97, какой-то версией фотошопа между 5 и 7 и Delphi. И знаете, ни разу ни у кого не было синих экранов :)
Не знаю, кажется, ни разу не переустанавливал ни одну из своих 98-х. И уж точно не переустанавливал «для решения проблем».
И это при весьма жестком сценарии использования.
У меня тоже всякое было, но синего экрана я особо не помню.
Некоторые приколы я даже принскринил
Верхняя копия «оторвавшегося» меню — активное.
image

И ещё, не стоит путать реальный синий экран и некую ошибку. На Win 98 они выглядели одинаково: белые буквы на синем фоне, но ошибка имела текст «Нажмите любую клавишу для продолжения» или даже бывало «ESC отмена, ENTER повтор». А вот настоящий синий не давал возможности продолжить. То, что изменили (скрыли, улучшили — нужное подчеркнуть) обработчик ошибок в более поздних версиях не делает их более стабильными, но в глазах юзера создаётся именно такое впечатление.
Офис 97 был ещё тот глюкодром, со времён студенчества помню.
согласен с автором.
в winXP есть простая ветка «запретить создание очередности меню»
отключить «задержку появления меню»
и в принципе изменить приоритет отклика между приложениями.

я за Чистый простой быстрый стабильно работающий код.
Сама концепция накопления «кода от предыдущих операционных систем» навсякий случай играет в новых ОС — жуткую роль.
а если добавить СОФТ который ещё и «следит за пользователей и сливает данные» то комп какой бы он ни был мощный очень жутко лагает, что бесит
Погуглил AutomaticDestinations и первой же ссылкой
www.online-tech-tips.com/computer-tips/clear-recent-items-windows-jumplists

Чтобы избавиться от файлов истории для всех приложений в таскбаре одновременно (а не для конкретного приложения) и запретить их создание в будущем, нужно снять галочку в настройках таскбара. У меня было 73 файла, осталось два (возможно для проводника или ещё чего-то). Перезагрузка не потребовалась. В любом случае я никогда не пользовался этой историей плюс полезно для privacy.

Спасибо автору и переводчику за наводку!
Вспомнил похожую историю с утилитой grep на GNU/Linux, когда вызов с ключом -i/--ignore-case выполнялся в 50 раз медленнее, чем без этой опции на системах с UTF-8 локалью: для каждого токена из потока входных символов подсистемой gconv из библиотеки glibc выполнялось постоянное чтение файлов /usr/lib/locale/locale-archive и /usr/lib/gconv/gconv-modules.cache. Лечилось c помощью выставления локали в «C»:
LC_ALL=C grep -i ...

Так себе "лечилось". Результаты-то в разных локалях могут быть разными...

Ну да, но для грепа по латинским идентификаторам/числам/датам в логах этого обычно достаточно.

Кто-нибудь скажите тоже, почему простейшее приложение MagicTuneLite для управления яркостью Samsung мониторов, но написанное на .NET, запускается 5 секунд, на мощнейшем компьютере с SSD? Ну и та же претензия к nVidia panel.
Объяснение просто. Программисты пишут то что им скажут, так как им скажут. А те кто им говорят об этом далеко не всегда понимают что не так и почему.
И поэтому если сказали возьмешь код вот от того приложения и переделаешь его в управление яркостью, то так программист и сделает не заморачиваясь.
В итоге имеем монструозные приложения суть которых поменять 1-2 записи в реестре, и сделать стандартный вызов одной двух API функций.
Такая же претензия и к большинству «железных» приложений от gigabyte, msi, asus и так далее. Какой нибудь простейший монитор размером в 10 мегабайт запускается 5 секунд.
Это проблема вообще всех .NET приложений? Или бывают быстрозагружаемые .NET приложения?
Есть какие-то способы ускорить их загрузку, сделать прекомпиляцию с кэшем для уже готового приложения?
UFO just landed and posted this here
Не получается с помощью ngen 4 сделать что-то с MagicTuneLite.exe
Uninstalling assembly c:\Program Files\MagicTuneLite\MagicTuneLite.exe because of an error during compilation: Failed to load the runtime. (Exception from HRESULT: 0x80131700).
Failed to load the runtime. (Exception from HRESULT: 0x80131700)
UFO just landed and posted this here

А вы проверьте какая там версия рантайма используется. Это может быть и не 4й рантайм, а очень даже 2й. Или вообще первый.

Или бывают быстрозагружаемые .NET приложения?


Бывают — тот же KeePass. Как верно написали ниже, существенное ускорение старта достигается при помощи штатной для .NET утилиты Ngen.

Это, скорее, общая проблема железячных контор (добавлю к списку JamboJet ещё Sony и Logitech), которые отдают свой софт на аутсорс кому попало.


И на .NET и Java можно писать быстрые удобные приложения. Если умеешь.

Скорей всего там тормозят вызовы API DDC/CI, а не .NET.
UFO just landed and posted this here
UFO just landed and posted this here
То ли я такой привередливый стал, то ли в последние годы даже у гигантов стало нормальным из конечных пользователей делать бета-тестеров. Такое впечатление, что в погоне за рынком выкатывают сырые версии, лишь бы новый функционал побыстрее внедрить, а то что новая фишка ломает старые — так это ничего, потом пофиксим!
Издержки распространения интернета. Раньше с вышедшим кривым софтом надо было бы снова напечатать партию дисков и разослать клиентам (и так с каждым фиксом), поэтому тестировали обычно до упора.
А сейчас тяп-ляп и в продакшн, потом обновления выкатим если надо. Все стало быстрее, но сырее.
Гиганты и не скрывают вовсе.

Зайдите в настройки обновления стандартной Винды и вчитайтесь в то, что там написано. По-умолчанию там стоит пункт «получать непросохшие свежайшие обновки», опционально можно вообще в бета-программу войти. И есть типа «стабильная ветка» для организаций.

И штатно заморозить обновы на неопределённый срок нельзя.

По той же причине там неотключаемая телеметрия (по-умолчанию ещё и расширенная) — для тестировочных машин это абсолютно логично.
Больше похоже на Continuous Nightly Build Delivery.
Это все мелочи. Вот то что драйвера стали весить сотни мегабайт…
А еще выключение. Я никаких программ не открывал, не обновлял. Система свежая. Почему выключение идет 20 секунд? Почему нельзя просто выключить питание? Почему у линукса так получается?
Почему у линукса так получается?

Мои убунты и арчлинуксы при выключении и на пару минут подвиснуть могут, ожидая завершения какой-нибудь службы

Почему выключение идет 20 секунд? Почему нельзя просто выключить питание? Почему у линукса так получается?

Это потому что на Windows, по дефолту, включена опция "быстрая загрузка", если её отключить, в дополнительных настройках электропиоания, компьютер будет выключаться мгновенно, но запуск, соответственно, будет происходить несколько дольше...

Попробуйте отключить свап файл, и выключение станет заметно быстрее.
UFO just landed and posted this here
Скорее, это работа т.н. «быстрой загрузки», когда система перед выключением скидывает на диск основную часть системной памяти, а при следующем включении загружает её оттуда обратно. Получается такая неполная гибернация (восстанавливается с диска только система, без пользовательского сеанса) и старт получается быстрее.

Ещё из-за этого бывают разные неожиданности и баги из серии «надо перезагрузить компьютер для завершения установки, но зачем, если вечером я его и так выключу», а на утро после включения оказывается, что система так и не перезагрузилась.

Ещё Винда куда нежнее сносит приложения, если они запущены на момент завершения работы. Тот же Дебиан, например, настолько быстро сносит их, что при выключении с открытым браузером Firefox там всегда (почти) будет упавшая сессия из-за того, что браузер не успел корректно завершиться.
помнится в ХР был один из твиков который как раз сокращал таймаут завершения приложений, с одной стороны ускорение работы, с другой — всякие подобные артефакты если при выходе из приложения что-то сохраняется
Да и сейчас можно допилить.

Штатно:
— Выключить «быструю загрузку» — не будет скидывать часть памяти на диск.
— Создать ярлык на «shutdown -t 00 -f» и выключать им, это ещё и помогает пропустить установку обновлений на выходе :)

Твики:
Computer\HKEY_CURRENT_USER\Control Panel\Desktop и там подкрутить WaitToKillAppTimeout и ещё кое-что, будет быстрее вышибать приложения.

Как по мне, польза всего этого сомнительна. Если приложение тормозит на выходе — оно что-то пытается сделать, на его взгляд нужное. Дело конкретно здесь не в «неправильной Винде», а в тормозящих приложениях, которые не могут нормально завершиться. Наверное тоже заняты открыванием какого-то файла сто тысяч раз подряд :)
Вы проверяли как себя ведет система если отключить файл подкачки? Наблюдал у себя такую картину: i7-8700k и 32 гб оперативной памяти. Приложения стабильно вылетали (особенно игры) из за того что система думала что всю оперативную память заняли (выделили под использование) но фактически было занята половина или меньше. Как это вылечить так и не понял.
Игры играм рознь, конечно. Но да, проверял. Как-то даже на 16ГБ создал ramdisk в 8ГБ, куда копировал игрушку целиком. В итоге на уровень вываливался первым с заметным опережением (ssd были ещё не распространены).
Конечно, не в любой конфигурации отключение свапа приемлемо, но наблюдаемые варианты (включая довольно прожорливые CAD'ы) работают на ура годами.
Браузеры в последнее время стали аккуратнее в выделении памяти — раньше система с отключенным свапом могла просто перезагрузиться, не успев даже вывести сообщение о нехватке ОЗУ, сейчас просто вылетает браузер. Возможно, это заслуга менеджера памяти ОС.

И мониторить выделение памяти никто не запрещает (например, с помощью HWiNFO). Кое-что поддаётся настройке (политика выделения памяти), кое-что можно отключить (Prefetch, Superfetch), сэкономив ценную память от разбазаривания.
В целом свап — вынужденная мера, позволяющая впихнуть невпихуемое ценой дикой потери производительности и, особенно, отзывчивости.
Зависит от приложений.
Если отключить файл подкачки, некоторые вылетают и это не связано с реальным использованием памяти. С другими работает стабильно и быстро.

Никогда не видел смысла в отключении файла подкачки. Если в системе достаточно памяти, то его наличие ни на что не влияет, но позволяет избегать вот таких косяков. Жалко места на диске? Ну поставьте фиксированный размер в гиг.
Не в месте дело (кроме случаев с 32GB eMMC). Хотя ресурса ssd да, жалко.
При включённом файле подкачки реактивность системы резко теряется, система начинает напоминать старый москвич с плавным ходом из анекдота.
При включённом файле подкачки реактивность системы резко теряется

Я такого по себе не замечал. Экспериментировал в прошлом, но разница была минимальна. Причём чем слабее компьютер, тем меньше заметно (при условии, что дефицита памяти нет).

Вообще, можете попробовать такой хитрый трюк.

У меня есть старенький нетбук с XP, 2ГБ оперативки и очень тормозным флеш-накопителем. Так вот я на нём создал RAM-диск на 500МБ оперативки и положил маленький файл подкачки туда — сугубо для совместимости с некоторыми такими капризными программами. Ну и кэши браузеров и ещё кое-какие временные папки туда перенаправил. С внутреннего накопителя подкачку убрал. Вот уж много лет полёт нормальный и работает ощутимо шустрее.

За применимость этого решения к 10-ке и играм не поручусь.
Ну свап то оказался в ОЗУ. Разница в производительности с hdd не один порядок.
Это единственный случай в моей практике, так как устройство больно уж специфическое :)

Что в офисных условиях, что на своих домашних машинках (правда, все они средненькие были по характеристикам, даже когда играл) я не замечал никакой практической разницы между отсутствием свопа и его наличием. А вот на стабильность это влияло. Когда памяти было заведомо достаточно, просто ставил его в 1ГБ, фиксированного размера и на самом быстром диске.

Может, в околотоповых конфигурациях это не так, но это странно.
Из свежего: компьютер на W10 с 4ГБ ОЗУ, hdd, файл подкачки включен, запущен Хром с пятком окон и несколько непрожорливых программ. Своппинг не затихает даже в фоне, переходя в сплошной при переключении между приложениями или вкладками Хрома, процессор отдыхает (о чём свидетельствует taskmgr, свёрнутый в трей).
Сворачиваю все окна (Win+D), Shift+Delete на иконке на рабочем столе — тишина. Повторяю Shift+Delete (промахнулся?) — появляется окно — «Удалить ДВА объекта?», в нём предположительное время, график производительности удаления. Да, удалить. Один объект удалён, второй не может быть удалён (какой сюрприз!), окно не исчезает, ожидает похвалы, как щенок, принёсший палку. Мне нужно было просто удалить ярлык, специально не вызывал контекстное меню для экономии времени, Shift_Delete выручает (хотя пару раз потом приходилось восстанавливать файлы).
Ещё весной на этом же компьютере с этими же программами можно было Работать неограниченно долго при отключённом свап-файле, а не любоваться ярким светодиодом индикации обращения к диску.
Ну так всё же постоянно улучшается, что ОС, что Хром :)

Поскольку я играть перестал, то дома пересел за Debian. Не из любви к искусству даже, а просто заколебало вот это всё, особенно внезапно прилетающие обновления. Там, конечно, тоже не без нюансов, но большую часть времени компьютер работает как и когда нужно.

Недавно перегрузился в Винду проверить кое-что, проверил и решил заодно разложить пасьянс :) Раскладываю, вдруг вентиляторы ноута стартуют на максимум. Смотрю диспетчер — процесс телеметрии поднял свою голову и грузит систему так, словно ему надо отправить мелкомягким всё содержимое ссдшника, предварительно пожав его в архив. Через 5-10 минут успокоился, пауза тишины — снова ноут пошёл на взлёт. WTF? На этот раз какой-то загадочный процесс rempl.exe (или как-то так) грузит систему, нечто связанное с обновлениями (а они все полностью установлены были), беглое гугление показало, что никто толком не знает что это.

В общем, ещё раз убедился в правильности своего решения на данный момент :)

Странно. С проблемой memory thrashing в Linux пока ещё ничего не делали. При тех же условиях всё должно быть хуже, чем в Windows.


Microsoft Compatibility Appraiser отключается в планировщике задач в Task Scheduler Library\Microsoft\Windows\Application Experience

Я много читал про эту проблему, но сам пока не наступал. Для моих текущих задач это проблем не создаёт. Есть и небольшой сервер с 2ГБ оперативки и столько же свопа, на котором крутится множество личного «облачного» барахла, оба постоянно заняты на 75% стабильно, не говоря уже о пиках — тоже всё нормально, я бы не сказал, что тормозит сильнее, чем должен.

Если что, я не идейный никсоид, я согласен, что в Винде есть много приятных и просто грамотных фишек… но в последнее время она кажется мне настолько over-engineered, что пользоваться ей без необходимости бывает просто неприятно.
UFO just landed and posted this here
Да ладно вам, драйвера.
Тут уже вирусы по гигабайту весят!
… почти не утрирую:
FaTh3R: Trojan.Win32.Chifrax.d – 388 MB
БЕс слёз aka LazyFao: троянский слон

bash.im/quote/404875
Была довольно странная ситуация с контекстным меню на wind 10 и у меня.
Я в свое время заметил, что при выборе пункта меню new (именно на рабочем столе), до отображения субменю проходило до 2-х секунд.
image
Также значительно дольше начали открываться приложения.
К примеру, для IDE Delphi вместо 11-12 секунд требовалось до 24.
Идентичная ситуация была и с eclipse.
В итоге моему терпению наступил предел, а любопытство начало «зашкаливать» и захотелось попытаться установить причину происхождения этой «беды».
Но самое загадочное было то, что весь этот «полтергейст» начинался после прохождения 80-85 секунд после загрузки ОС.
Сравнивал я и запущенные процессы/службы с двух компов «близнецов», но так и не «победил».
Все решилось, новой установкой ОС.
Все решилось, новой установкой ОС.

Ну вот, на самом интересном месте (
А у меня Win98 часто делала вот так:
Создать? - Создать!
image

Я так понимаю, что подменю «создать» как и многие другие подменю, вроде «отправить» создаются динамически на момент вызова и могут жутко тормозить в случае загаженности системы.
Страдаю от этой проблемы Windows 10. В установленной на том же компьютере Windows 7 подменю «Создать» открывается мгновенно. В Windows 10 — через несколько секунд, причём, если это подменю единожды открыть, то в следующие разы может открываться уже быстро, хотя не всегда. Переустанавливать не хочется, да и нет гарантии, что внезапно не начнётся снова, особенно учитывая следующую проблему.

Другая проблема — после обновления Windows 10 до 1809 перестал срабатывать пункт «Открыть» контекстного меню ярлыков файлов и папок.

P.S. Core i7-3770T + 32 ГБ + SSD + GTX 650 Ti Boost.
Да, иногда после первого открытия, открывалось быстрее.
Core i7+ 8 ГБ + SSD + GTX 560.
Я переустановил, вот уже 9 месяцев – полет нормальный.
Забыл отметить: меню тормозило при открытии мышью. С помощью клавиатуры все было ГУД.
На всякий случай проверил: в моём случае тормозит и при открытии с помощью клавиатуры.
UFO just landed and posted this here
Так-то оно так, только вместе с этим совпали тормоза при открытии приложений.

Что меня и удивило, так это то, что все идентичное: ПО и ОС были на другом ПК.

Перед сносом ОС, удалил все обновления и установленное ПО, но баг остался. Самое интересно это что все проявлялось через 80-85 секунд после загрузки ОС. Все как по часам.

Причем новые процессы/службы в этот период времени не запускались и не завершались. Делал разные логи.

В итоге «природа» бага оказалась не выясненной.
В Windows 7 этой проблемы нет при таком же наборе установленных программ (одному и тому же человеку закономерно нужны одни и те же программы вне зависимости от версии Windows).

Так проблема-то может быть не в установленных программах, а в удалённых.

Возможно, но в виртуальной машине (VMware Player) с Windows 10 Insider Preview на том же компьютере проблема тоже проявляется. Insider Preview, кстати, после последнего крупного обновления, похоже, безнадёжно вышла из строя. Спасибо MS за приключения, которых не было с Windows 7.
Критиковать чужие, большие проекты всегда очень просто. Сделайте лучше.
UFO just landed and posted this here
Мне всегда нравилось наблюдать за выходом новых противоугонных систем. И как умельцы, если не за часы, то за считанные дни находили в них уязвимые места и лазейки. Нравилось, потому что я в этом вообще ничего не понимал. Для меня это была магия.

Очевидный вопрос: почему не собрать десяток таких профи, да не сделать непробиваемую систему? Очевидный ответ: в любой системе можно найти слабые места и недочеты.

Так что не такие профи делают новые системы лучше. А общий рост доступности технических средств для взлома. И простой маркетинг: «мы лучше конкурентов».

Как для меня, есть более критичные вещи, чем обработка клика вызова контекстного меню в панели задач Проводника. Это может быть общая стабильность ОС. Скорость выполнения прикладных программ под ее управлением. Удобство разработки самих этих программ. Совместимость между версиями ПО. Хорошая поддержка разного железа.

Вот честно, для меня написанное совсем не убедительно. Нашли к чему придраться.
Это может быть общая стабильность ОС. Скорость выполнения прикладных программ под ее управлением.
Только в XP стабильность в целом не хуже, и скорость выполнения программ почти не хуже. Но при этом всех этих лагов нет. Угадайте, какую версию я выбрал для работы? :)

Конкретно в XP, насколько я помню, Проводник однопоточный, и если одно окно зависает на обращении к сетевой папке или компакт-диску — зависают все. Впрочем, при использовании Far Manager этот недостаток не важен.

Я не использую FAR, но к счастью, редко использую и сетевые ресурсы. Хотя с такими зависами постоянно сталикваюсь.

Вот что меня правда огорчает в новых версиях — так это скорость работы с диском. На одном и том же HDD почему-то на XP поиск файлов выполняется быстрее процентов на 15-20, если использовать TotalCmd (и мне кажется, через проводник ситуация будет похожая, хотя тут судить однозначно не могу, т.к. на XP не ищу Проводником, а на Win 7 наоборот не установлен TotalCmd). Возможно, дело в разных драйверах ACHI, не знаете?
Всё зависит от того, включена ли служба индексации.
UFO just landed and posted this here
Да вы знаете, пока была включена — дико съедала проц и нагружала диск, пришлось её вручную отключать. Хотя верю, что с ней поиск будет намного быстрее, возможно, в разу. Прикол-то в том, что на Windows XP TotalCmd не использует «виндовые» индексы, я так полагаю (а ищет всё равно очень быстро). Или я не прав?
Он, по идее, делает рекурсивный проход по директориям. Сами директории вычитываются полностью и 1 раз, поэтому кэшируются. Я у себя на 7 вообще удалил поиск (а вместе с ним и индексацию), пользуюсь Фаром. Тоже прогоняет достаточно быстро.
Компоненты
image

Служба поиска индексирует не только имена файлов но и их разные свойства. Поэтому он априори медленнее чем у файловых менеджеров, которые используют минимум параметров поиска.
Так уже сделали. Причем MS же. Только 2 десятилетиями раньше :)

И? Да, критики не смогут создать аналогичное, не будут пробовать, не умеют (нужное подчеркнуть). Но разработчики же может как-то обрисовать для чего это было нужно?
Даже простой вопрос про перезагрузку после установки обновлений практически ни один разработчик не написал языком приближенным к пониманию рядовому обывателю зачем нужна перезагрузка? Про айтишников речи не идет.
Про обновления. зачем нужно пихать в единый пакет? И заплатки для критичных узлов и красивости.


Просто объяснить обычным человеческим языком зачем были нужны подобные действия.
Может это так трудно? И подобных вопросов куча. Например почему при огромных возможностях которые были заложены в длинный рог и в мелениум, майки превратили продукты в говно.

Автор за винду вообще-то деньги заплатил и, кажется, имеет право просить, чтобы часто выполняемые базовые действия выполнялись быстро и не тратили его рабочее время.

имеет право просить
Это в лицензионном соглашении указано?
Будьте снисходительны. Конечно не указано, но просить можно.
За компьютером я работаю быстро, <...> Постоянной помехой на моём сверхмощном домашнем ноутбуке стало медленное закрывание окон на панели задач. <...> Я нажимаю правой клавишей на значок, жду, пока откроется меню, а затем выбираю «Закрыть окно».

Мамо!

Похоже автор вообще не осознает, что такое работать быстро. Иначе бы он не пользовался проводником. И мышкой старался бы пользоваться как можно реже.

Хотя тормоза виндового проводника уже такие, что даже расслабленные погонщики мышей начинают что-то подозревать. )

На ноутбуке не так-то просто нажимать Alt+F4, если вы имели в виду именно этот способ. Хотя бы потому что в "аккорд" приходится добавлять клавишу Fn, которая ещё и находится чёрт знает где...

UFO just landed and posted this here
*Верно не для всех ноутбуков.
Ещё ни разу не видел ноутбука, где поведение функциональных клавиш бы не настраивалось.
Тоже верно, просто не все заморачиваются.
Acer Aspire S7. Чтобы нажать F4 — вам надо нажать кнопки Fn и 4. Дополнительного ряда функциональных кнопок на нём просто нет.
А у него нет режима Fn-lock, в котором функциональный ряд переключается в режим Fn1-Fn12 по умолчанию, а регулировки громкости-яркости начинают работать через Fn?
UFO just landed and posted this here

В Win10 работает Ctrl+W
А еще для любителей хоткеев есть vi и linux :)
Правда хоткеи и в средах разработки полезны.
Да и про IDDQD не стоит забывать
Что-то меня совсем на оффтоп потянуло

В Win10 ещё работает закрытие по двойному клику на миниатюре в левом верхнем углу?
UFO just landed and posted this here

Она тянется ещё с Win3.1, а то и раньше, когда отдельной кнопки для закрывания не было.

В Хроме тоже долгое время была невидимая миниатюра, но относительно недавно её убрали.
Ого, не знал про такую возможность! Удобно :) И проще будет перелезать с винды на Mac или Gnome. Разве что, там клик нужен одиночный… А то случайно два приложения можно закрыть по привычке вместо одного
> добавлять клавишу Fn
Это всё настраивается. Или мультимедиа кнопки по Fn, или без неё.
Не всегда.
Через 3 дня после покупки пришлось унести в магазин ноутбук Леново, потому что перенастроить поведение Fn клавиш, оказалось невозможно. Это явно было сделано специально, потому что в более дорогих моделях в БИОСе опция была, а в дешевых не было.
Никаких объективных причин для такой ситуации нет, кроме той, что, по мнению Леново, нищеброды должны страдать.
Аналогично было с нeтбуком Packard Bell, захардкожено в биосе.
Только он был служебный и в магазин его уже никто не понес. Я проклял тот день когда сел за баранку этого пылесоса (жмешь Alt+F4, а у тебя выключается экран, ведь надо было жать Alt+F4+Fn).
Если мы говорим про работать быстро, то все неудобные сочетания клавиш (если они «постоянная помеха») следует переназначить на удобные (а то и вообще не заменить скриптом). В винде с этим проблем почти нет. Autohotkey — великая вещь. Если вместо этого мы берем мышку, правую кнопку, ждем контекстное меню и тп — это уже не про быстро, это про не спеша. Попивая чай и почитывая Хабр.
Ну, в целом с вами нельзя не согласиться. Хотя многие люди способны и мышью работать очень быстро. Особенно если часто играют в шутеры :)

А какую альтернативу вы можете предложить вместо панели задач? Переключиться на окно при помощи ALT+Tab*n и только потом закрыть?
Правда, интересно. Ведь насколько я понял, автор закрывает фоновые окна, а не текущее.

Подозреваю что код написан методом копипаста-стайл одним из индусов, который не шарит в айти, но был вывезен в США своим родственником.
Впрочем, мы ничего не можем сделать MS за его навоз, который оно скармливает под видом ОС, по этому такой код будет продолжаться.
Вот если бы какой-то айтишный суд оштрафовал MS на 25% капитала за такие мансы — то MS сразу бы перестала аутсорсить кодерам, которые работают по пять баксов в час.

Почему?
1) Всем пофиг. 750мс — не так уж и медленно. Чтобы спозиционировать мышь на кнопке и сделать щелчок, согласно методике GOMS, уходит около 1 секунды. Секундой меньше, секундой больше. Можно показать пользователю весёленькую (на самом деле нет) анимацию отображения меню.
2) Этого не было в ТЗ. Функции в коде были написаны с лучшими намерениями и, возможно, даже оптимизированы, но затем (лет через 5) появился код, вызывающий эти функции, а еще лет через 5 код оброс тысячами вызовов, и получилось то, что есть. Вместе с пунктом 1, не факт, что ТЗ на оптимизацию появится. Возможно, даже никому не приходило в голову это оптимизировать.


При оптимизации кода в большинстве случаев целесообразно применять правило "преждевременная оптимизация — корень всех зол", а также имеет смысл оптимизировать то, что больше всего тормозит. Вероятно, находились более приоритетные задачи. Невозможно оптимизировать всё.

Под «преждевременной оптимизацией» подразумевается «пытаться оптимизировать то, что и так нормально работает». А исправить откровенно дурной код, это вообще не «оптимизация», а «нормальный подход к работе».

Я описал один из вариантов, как при "нормальном подходе к работе" может получиться ужасный в целом результат. Многолетние наслоения кода творят "чудеса", и приходится их переписывать по-нормальному, когда эти "чудеса" начинают всем мешать. И мешать они могут лишь в специфическом окружении, а не у команды разработчиков/тестировщиков, которая может всё сделать правильно (судя по имеющейся у них информации), и вообще остаться в неведении насчёт бага, который проявился лишь через N лет после написания кода.
В каком-то смысле, это даже прекрасно, что 100000 чтений из файла заняли всего 750мс, а не, скажем, 1000 секунд (это значит, ReadFile() неплохо оптимизирован!). Но именно поэтому баг некритичен и его не исправляют.

Но именно поэтому баг некритичен и его не исправляют.

Нет, не поэтому. Просто потому, что в той команде разработчиков предпочитают выкатывать на продакшен сырой код, а потом платить за весь цикл разработки фикса, тестирования фикса, доставки фикса, вместо того, чтобы сразу чуть больше внимания уделить его качеству. Всякие там сложные схемы, как такое могло произойти в результате многолетнего стечения обстоятельств надуманы. Это не единичные случаи, там сейчас везде подобные «стечения обстоятельств».
Для таких разработчиков даже фирменное лого есть

image

чуть больше внимания уделить его качеству.

Мне кажется, вы путаете качество с идеалом. Насколько я помню, в определениях качества нет требования мгновенной работы, а есть требования к выполнению задач пользователя в определённый срок и с определённой вероятностью успеха. Идеального ПО не бывает. Мне трудно представить компанию, занимающуюся коммерческой разработкой и выпускающую идеальный код. Все останавливаются на "Работает (выполняет задачи пользователя в срок) — и ладно. Не работает — перепишем". И я не вижу причин поступать иначе, кроме как самоцели написания идеального кода.
А вы видите другие причины?

а есть требования к выполнению задач пользователя в определённый срок и с определённой вероятностью успеха.

Нет, как раз наоборот. Уложиться формально в норматив спецификации, не заморачиваясь другими вопросами, это не качество, а как раз вышеупомянутый «хуяк-хуяк, и в продакшен». Качество — это соблюдение общепринятых правил оформления кода и построения архитектуры, это когда дизайнеры придерживаются единой концепции построения UI, и когда тестировщики не выпускают наружу релизы с критичными багами, просто потому, что менеджер назначил символическую дату релиза, которую ну никак нельзя сдвинуть, т.к. система мотивации в компании такая, что премию не дадут.
Вот это — качество. И что самое интересное, это в среднем +10% к срокам разработки, которые решают 90% её проблем.
А вы видите другие причины?

Например, удержание доли рынка. Майкрософт сейчас такое может себе позволить. В Windows NT 4 не было заметных невооруженному взгляду багов, хотя там было огромное количество изменений после NT 3.5, да и в каждом сервис-паке их было куда больше, чем в нынешних полугодовых релизах десятки. А разработчиков было в разы меньше. Но тогда им в спину вовсю дышали Unix'ы, и надо было поддерживать культуру разработки. А сейчас этого нет.
В Windows NT 4 не было заметных невооруженному взгляду багов, хотя там было огромное количество изменений после NT 3.5, да и в каждом сервис-паке их было куда больше, чем в нынешних полугодовых релизах десятки

А вы помните при каких обстоятельствах появился сервиспак 6a в NT4?
не так уж там и радостно было всё временами.
Идеального не бывает ничего. По почти идеальное ПО бывает. Дональд Кнут, например, стремится к созданию именно такого ПО, старательно отлаживая свои продукты, привлекая к процессу всех желающих и оплачивая их труд.
Способ нумерации версий ПО как бы намекает на конечность и сходимость процесса отладки: в качестве номеров версий выбраны константы, в частности, pi и e, версии уточняются в последних знаках. Т.е. функциональность и стабильность ПО достигла зрелости и не предполагает появления мажорных версий.

Конечно, ожидать от грандов индустрии подобной дотошности в производстве ПО опрометчиво.
Т.е. функциональность и стабильность ПО достигла зрелости и не предполагает появления мажорных версий.

Странный подход. По-моему, любое ПО когда-нибудь придётся переписывать, т.к. на протяжении лет меняется окружение, пользователи хотят решения новых задач, и рано или поздно и вся архитектура, и весь UI оказываются неудобными, устаревшими и неповоротливыми.

Важно, что ПО продолжает выполнять ожидаемые функции.
Меняется окружение, появляются новые запросы — выбираем новую константу и пишем новое приложение.

Неповоротлива в контексте статьи ОС, отвлекающая ресурсы оборудования на действия, о которых её даже не просили.
Фраза про оптимизацию, к сожалению, часто вырывается из контекста.
Полная фраза: «We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.»
Сколько проблем с производительностью получили индульгенцию из-за этой фразы? (ритор. вопрос)
Критический ли лаг 750мс? Зависит от. Я бы лично предпочел, чтобы UI не лагал так, если это несложно исправить.

Естественно, я тоже предпочитаю, чтобы всё летало, а не лагало. Но считать лаг 750мс критическим, когда только на позиционирование мыши требуется около 1000мс, — это всё-таки ближе к перфекционизму. Вряд ли работа сколь-либо существенно ускорится, если отклик будет мгновенным (это мои предположения, конечно).


We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%

При оптимизации кода в большинстве случаев целесообразно применять правило "преждевременная оптимизация — корень всех зол", а также имеет смысл оптимизировать то, что больше всего тормозит.

Разве моя фраза противоречит вашей цитате?
Сам не очень-то люблю это высказывание, но в контексте статьи речь идёт о том, что разработчики должны были оптимизировать код, как-то предугадав, что у автора он начнёт тормозить (что могло быть совершенно неочевидно!) Полагаю, на момент разработки всё работало быстро (либо достаточно быстро), поэтому никто не стал заранее оптимизировать именно этот участок.

только на позиционирование мыши требуется около 1000мс
Одна секунда — это чертова дохренища времени.
Произнесите медленно слово «четырнадцать» — вот это примерно одна секунда. Я, считая себя очень медленным (и в частности по этой причине не любящий играть в экшны) за это время успеваю позиционировать мышь на вашем нике, открыть ваш профиль в новой вкладке и перейти на нее.

Я не знаю, какую методику и на какой выборке использовала эта самая помянутая вами GOMS — да честно говоря, и знать не хочу. Подозреваю, что в выборку попали либо новички, которые мышку держат двумя руками для большей уверенности, либо люди с выраженными нарушениями функциональности опорно-двигательного аппарата. И те и другие, впрочем, от ускорения отрисовки контекстного меню страдать не будут.

Короче говоря, у вас исходные данные неверны. Секунда — это дофига, и средний пользователь позиционирует мышь в среднем в разы быстрее.

Возможно, эти данные из 80х-90х, когда оптических мышек не было. И там что-то вроде 1.1с даже, но это среднее время на разных пользователях. Для сравнения, кнопка на клавиатуре там оценивается в 0.1с.
Попробуйте замерить время 10 кликов по произвольным кнопкам в разных частях экрана. У меня получается 12-15 секунд.


Кстати, при выборе пункта меню, согласно той методике, пользователь только на обдумывание тратит примерно логарифмическое от числа пунктов время (там какая-то более сложная формула, типа "логарифм + константа").

Кстати, при выборе пункта меню, согласно той методике, пользователь только на обдумывание тратит примерно логарифмическое от числа пунктов время
Всё верно. Но если между этими этапами обдумывания вклинивается подвисший UI (система как бы говорит пользователю «так, а теперь подожди, мне тут пункты для вывода просчитать нужно»), то это неимоверно раздражает, ибо прерывает плавный мыслительно-двигательный процесс.

И да, часть про обдумывание имеет место только для новых пользователей. Лично я например когда выполняю какую-то операцию через контекстное меню по сотне раз в день или больше (ну не люблю я тактильно нажимать клавиатурные шорткаты), то я уже делаю это действие на полном автопилоте, зная координаты нужного мне пункта относительно места клика. Именно поэтому я крайне страдал, когда в одной из версий Хрома нужный мне пункт сохранения фотографии сделали вторым или третьим, тогда как раньше он был на самом верху. Потому что после этого изменения мне во-первых, пришлось бы переучиваапться, а во-вторых, всё равно были бы частые ошибки позиционирования и «мисклики».

В итоге я решил проблему патчем бинарника :)

Думаю, вы способны быстро нажимать кнопки лишь пока регулярно в этом практикуетесь. Даже усталость снизит скорость до неприличия. И тогда 700мс не будут играть роли (т.к. будут занимать небольшой процент времени).


Эти методики улучшения юзабилити обычно рассчитаны не на продвинутого пользователя, который регулярно работает с программой, а на этакого усреднённого бухгалтера, которому раз в год между работой нужно перекинуть файлы из облака на компакт-диск. Считается, что пользователь не может утруждать себя запоминанием, где какой пункт меню, в какой последовательности нажимать кнопки, и т.д. — это всё должно быть очевидно, а ещё пользователь между нажатием кнопок может отвлечься (ответить на срочный звонок, например), и GUI должен быть таким, что после возврата к работе пользователь должен моментально понять, что делать дальше (быстро восстановить контекст), как будто пользователь совершенно неспособен запомнить, какую кнопку он только что нажал. И такой стиль GUI (user-friendly) хорош — он порождает меньше всего WTF в секунду. Но мгновенная реакция от пользователя не ожидается, поэтому компьютеру тоже некуда спешить.


Также есть другие классы ПО (типа панелей управления различными установками или реакторами), которые требуют мгновенной реакции пользователя на события — но там всё вынесено на сочетания клавиш, и пользователи регулярно проходят аттестацию, что не забыли ни одно из этих сочетаний, и чётко помнят, в какой последовательности можно и нельзя нажимать. Без обучения и аттестаций такое ПО неприменимо.


Короче говоря, вы переоцениваете важность 700мс для выполнения работы в срок. На самом деле, это малая доля времени. Если вы открываете меню 100 раз в день, вы теряете 70 секунд — чуть больше минуты, а из 8-часового дня это примерно 0.24%. Если вы доложите начальству об ускорении работы на 0.24%, это будет странно.


P.S. и я не понимаю, почему людям это не очевидно.

а ещё пользователь между нажатием кнопок может отвлечься (ответить на срочный звонок, например), и GUI должен быть таким, что после возврата к работе пользователь должен моментально понять, что делать дальше (быстро восстановить контекст)
Согласен полностью, но при чём тут это? Как свойство интуитивности (небольшие анимации меню, продуманность расположения пунктов меню, продуманность тех же строковых надписей) противоречит свойству «работать без лагов»?

Вы как-то странно представляете процесс ожидания.
Процесс ожидания начинается не с позиционирования курсора мышки, а с клика клавишей мыши. Клик — ждем реакции — интерфейс отреагировал. И на мощных машинах отклик интерфейса обычно заметно короче 750 мс. Раздражает именно это отличие в отклике. Везде быстро, а тут медленно.

В моём представлении, пользователь запускает задачи гораздо более долговременные, чем требуется на тормоза интерфейса в данном случае, поэтому 750мс здесь — относительно небольшая задержка. Если бы пользователь только и делал, что кликал мышью по разным кнопкам, он бы тратил 1000мс на позиционирование и клик, и 750мс на тормоза, т.е. около 40% на тормоза максимум. Если кроме кликов и тормозов время тратится на что-то полезное (да хотя бы набор текста или копирование файлов), на тормоза будет тратиться ещё меньший процент времени.

Речь всё же о ста тысячах лишних непродуктивных вызовов.

Уверяю вас, компьютер, способный выполнять миллиарды инструкций в секунду, делает на порядки больше непродуктивных вещей. Процессор офисного компьютера обычно спит 99% времени! Для ряда задач пользователя не нужна ни многозадачность, ни механизм виртуальной памяти, ни хитрые кэши, но они есть и отъедают свои микросекунды и ватты, даже если в конкретной задаче не нужны. Вклад тех 100000 вызовов в общую непродуктивность невелик. В идеале, конечно, такого быть не должно, но на практике — чаще всего проблема некритична.

И пусть процессор спит, на то ему и разработали различные состояния сна. Это пользователя процессор, и его же ssd, и контроллер sata в чипсете тоже, и не нужно их насиловать операциями, которые пользователю не нужны. Ватты, кстати, тоже пользователя. Про отвал моста слышали? Кто виноват, котики пользователя с ютуба или те самые лишние непродуктивные дисковые операции, не позволяющие мосту спать/остывать?

Загадить все уровни кешей, как и нецелево использовать механизм виртуальной памяти система способна легко.
Пользователям зачастую приходится по несколько минут ждать загрузки системы, ожидать переключения между программами из-за недостатка физической озу, не говоря уже о прочих обновлениях. Хуже всего, что большинство пользователей считают это нормальным.
И пусть процессор спит, на то ему и разработали различные состояния сна.

Но тогда пусть и ReadFile() вызывается 100500 раз в секунду, на то её и оптимизировали. Доступ к диску кэширован, а DRAM стерпит. Да, потраченное впустую время и потраченная впустую энергия, но их доля в данном случае мала, чтобы существенно мешать работе. Примерно как доля затрат на виртуальную память, когда она есть, но не нужна.


Про отвал моста слышали?

Первый раз слышу. Но это аппаратная проблема. Нормальные системы проектируют так, что никакой говнокод не способен их убить. Иначе система умрёт и от хорошего кода, если ему вдруг потребуется считать 100500 файлов.

Дисковый кеш это хорошо, но, как и любой — если им не злоупотреблять. Если одновременно несколько приложений и ОС конкурируют за право использовать кеш, от него будет скорее вред, т.к. на его заполнение тоже нужно время. Тогда нужно вводить приоритеты — это приложение работает с важной (для пользователя БД), ему приоритет. А это ОС хочет своей статистикой позаниматься — пусть подождёт.

ОЗУ много не бывает.
А вот затраты на свап огромны. Это лишние время, энергия, нагрев, износ.

Нормальные да, проектируют. Сервера, например. А ноутбуки часто умирают именно из-за перегрева моста, которому ни нормального охлаждения не достаётся, ни встроенного механизма защиты (как троттлинг у процессора) нету. Есть датчик температуры, да кто ж его мониторит. В настольных материнских платах хотя бы доступнее пользователю терможвачку под радиатором сменить на термопасту.
Доступ к диску кэширован

RuntimeBroker.exe создал 229 604 вызова ReadFile <..>
Не забывайте, что это вызовы к операционной системе — вызовы ядра. Это значит, что между RuntimeBroker.exe и этим файлом отсутствует кэширование.

Разве что DRAM SSD cache поможет.
Видимо, здесь подразумевалось не отсутствие кеширование, а отсутствие буферизации. Это не значит, что ядро не кеширует содержимое диска. Это к тому, что приложение могло бы читать большими блоками в буфер, и уже из буфера доставать нужные ему фрагменты по 68 байт, без обращений к ядру. Так было бы намного быстрее.

Разве речь о том, насколько эта задержка мешает работе в реальности?
Речь о том, насколько эта задержка раздражает на фоне мгновенного отклика интерфейса в других случаях. И о том, насколько оправдана эта задержка: очень похоже на точку зрения "проще купить мощное железо, чем оптимизировать работу софта". Только тормоза видны на мощном железе

UFO just landed and posted this here
То есть 40 процентов времени в среднем сверху при работе — для вас ерунда?.. Ничего себе.

У меня, кстати, на свежеустановленной Windows 10 главное меню открывается 900-1000 мс, и это ещё дольше, чем у автора статьи контекстное. Тоже очень раздражает. Да, у меня кастомная сборка, там отключена часть служб — но даже отключение служб не должно по идее приводить к таким лагам базового интерфейса. Да и на официальных сборках это же меню открывалось не сильно быстрее, кажется.

40% не в среднем, а максимум. Если работа заключается не в чистом кликании мышью, процент будет гораздо меньше, может, процентов 5 (это если пользователь вызывает меню каждые 14 секунд). Не думаю, что эти потери больше потерь времени на мелкие отвлечения от работы, чтобы, например, оторвать взгляд от экрана. Сколько раз пользователь вызывает это меню за день? Чаепития или перекуры, если вдруг случатся, наверно переплюнут эти потери от тормозов.

Чаепития или перекуры, если вдруг случатся, наверно переплюнут эти потери от тормозов.
А причём тут чаевития и перекуры? Они учитываются работодателем, когда он график работ рассчитывает.

А 5% рабочего времени — это много. Даже если зарплата $1000 в месяц — это $50 на человека. За год набегает $600. Вполне себе неплохая сумма, которую можно попробовать стрясти через суд.

5% — моя неточная оценка. Можете попробовать более точно подсчитать время, подсчитав число открытий того меню за день и умножив количество на 700мс.
Стрясти через суд не получится, ибо "software is provided as is". Без этой фразы в стоимость ПО была бы включена стоимость страховки от постоянных косяков, которые неизбежны.

Стрясти через суд не получится, ибо «software is provided as is».
Ну понятно, что вначале нужно изменить законы, чтобы эта фраза потеряла силу. Ну или хотя бы не распространялась на платные программы. Если программа ничего не стоит, то я, в общем, понимаю, почему страховка может не быть включена в стоимость. Но почему пакет молока за доллар включает такую страховку, а программа во многие тысячи долларов — нет, я лично понять не могу.

Без этой фразы в стоимость ПО была бы включена стоимость страховки от постоянных косяков, которые неизбежны.
Ну и было бы неплохо. Потому как если цена — это компенсация за разработку, то непонятно с какого перепугу один и тот же код может продаваться за $20 (Windows Home) и за $6000 (Windows Server).
Ну понятно, что вначале нужно изменить законы, чтобы эта фраза потеряла силу. Ну или хотя бы не распространялась на платные программы.

Вы когда-нибудь создавали программы, в которых надёжно (математически) доказано отсутствие багов? Создание такого ПО стоит на порядки больше, чем того, что есть. А в том, что есть, всегда есть баги. Это следствие сложности ПО, а не особого разгильдяйства разработчиков.


Но почему пакет молока за доллар включает такую страховку

Потому, что не каждый пакет молока несёт в себе опасность. Пастеризация гораздо более проста и эффективна, чем отладка кода. Если в молоке осталось небольшое количество бактерий, ваш иммунитет с ними справится или они сами погибнут и вам не навредят. Синтез молока отлажен миллионами лет эволюции, как и ваш иммунитет. Но на разработку и тестирование ПО нет столько времени. Если в ПО есть баги (а они есть, ибо разрабатывать сложно), они не могут сами исчезнуть. ПО запускается много раз, и за тысячи или миллионы запусков кода в разных условиях вы столкнётесь с ошибками.


(про страховку)
Ну и было бы неплохо.

А считать не пробовали? Допустим, разработка ПО стоит М долларов, и вы можете потерять из-за косяков в ПО N долларов, поэтому хотите страховую сумму N. ПО без багов не бывает, поэтому вы найдёте косяк с вероятностью в 100%, и потребуете свои N долларов. Поэтому страховка будет стоить как минимум N долларов (плюс издержки страховой фирмы), а в сумме вы заплатите минимум M+N.
Кстати, обсуждаемый косяк багом не является, т.к., скорее всего, никак не влияет на решение задач пользователя, но вы, наверно, истребовали бы страховку или засудили бы производителя ПО. Поэтому никто вам программу не продаст, будете считать на счётах и звонить через телефонисток.


за $20 (Windows Home) и за $6000 (Windows Server)

В них есть различные компоненты, что очевидно всем, кто использовал Windows Server.

Вы когда-нибудь создавали программы, в которых надёжно (математически) доказано отсутствие багов? Создание такого ПО стоит на порядки больше, чем того, что есть.

Ну и более того — такой тип статического тестирования далеко не всегда применим.
Вы когда-нибудь создавали программы, в которых надёжно (математически) доказано отсутствие багов?
Создавал.

Создание такого ПО стоит на порядки больше, чем того, что есть
Может и на два, да.

А в том, что есть, всегда есть баги. Это следствие сложности ПО, а не особого разгильдяйства разработчиков.
Причём тут всё это? Да, и в процессорах и в программах и во всех других вещах есть баги. Пока они не вызывают финансового ущерба — от них ни горячо, ни холодно.

Но когда серьёзный неисправимый баг находится в процессоре — это приводит к серьёзным финансовым последствиям, а если подобная же ошибка оказывается в ПО — то это, в лучшем случае, кончается публикацией странички на сайте производителя.

Но на разработку и тестирование ПО нет столько времени.
Ну миллионов лет на разратоку и тестирование действительно нет, но потратить на это дело в 2-3-10 раз больше, чем тратится сейчас никто, в сущности, не мешает.

Потому что большая часть ПО, которое создаётся сегодня никаких реальных проблем не решает, а, в лучшем случае, удовлетворяет чьи-то амбиции.

ПО запускается много раз, и за тысячи или миллионы запусков кода в разных условиях вы столкнётесь с ошибками.
И пока их немного — страховая компания их вполне оплатит.

ПО без багов не бывает, поэтому вы найдёте косяк с вероятностью в 100%, и потребуете свои N долларов.
А вот это — вряд ли. Никого не волнуют абстрактные баги. Так же как и никого не волнует наличие бактерий в молоке если вас не «несёт», так и наличие багов, которые никак не проявляются — вас тоже не волнует.

за $20 (Windows Home) и за $6000 (Windows Server)
В них есть различные компоненты, что очевидно всем, кто использовал Windows Server.
И сложность этих компонентов отличается на два с лишним порядка? Не смешите мои тапочки.

Разница в цене, очевидно, исходит из того, что с помощью одного из этих продуктов я буду писать письмо любимой бабушке, а с помощью другого — зарабатывать деньги… вот только почему при этом туда не включена страховка за то, что я этих денег, возможно, заработать и не смогу? Из-за недоработок вот в этом вот пакете ПО ценой в неплохую месячную зарплату работника?

Поэтому никто вам программу не продаст, будете считать на счётах и звонить через телефонисток.
Вот только не надо FUD разводить. Конечно если выбор у производителей ПО будет — «развод лохов на деньги» или «честное выполнение своих обещаний», то «развод лохов» всегда выигрывает. Но для того и существуют законы, чтобы этого не происходило.

Если производителям запретить брать деньги за своё ПО без соотвествующего страхования — то они предпримут все необходимые действия для того, чтобы ошибок не было.

Это, в общем, не так и сложно: 99% кода в создаваемом сегодня ПО — это пердосвистелки, которые, по большому счёту, для функционирования ПО не нужны вообще. Если они будут выпилены и создающие их разработчики займутся поиском и исправлением ошибок — то всем будет лучше.

Почему? Да потому что чем дальше в лес, тем больше ошибки в ПО — это не о потерянных деньгах, а человеческих жизнях.

Если IT-индустрия не решит эту проблему сама, то, рано или поздно, государство всё равно вмешается — и вот тогда робкие предложения о том, чтобы всего-навсего предоставлять страховку нам покажутся цветочками.

Ну вот так же, как с порядком в Интернете: не захотели обеспечить порядок «по хорошему» — получите решение «по плохому» (и не надо думать, что «законом Яровой» всё ограничится).
Хотите ПО с гарантиями — никто лично вам не мешает профинансировать такую разработку. А текущие пользователи даже в 2 раз дороже не захотят платить, не говоря уже о 10-100. Зачем решать за всех.
Ну вот так же, как с порядком в Интернете: не захотели обеспечить порядок «по хорошему» — получите решение «по плохому» (и не надо думать, что «законом Яровой» всё ограничится).
Наглядно видно, что вся эта ерунда не работает. Террористы так же спокойно координируют свои действия хоть через СМС, обычные юзеры качают с заблокированного рутрекера и т.п. Зачем реально были приняты регулирующие интернет законы — чтобы попилить бюджет (у нас) и пощипать заокеанские корпорации (в Европе).
Зачем решать за всех.
По той же причине, по которой «за всех» решают что можно называть молоком (а что — «молочным продуктом»), заставляют писать цену за килограмм (в Европе, по крайней мере) и прочее.

А текущие пользователи даже в 2 раз дороже не захотят платить, не говоря уже о 10-100.
Дык они и дома будут покупать из песка, если им волю дать. А потом плакать, когда они развалятся и родственники только нос и большой палец из-под руин смогут вытащить.

Террористы так же спокойно координируют свои действия хоть через СМС, обычные юзеры качают с заблокированного рутрекера и т.п.
Насчёт террористов не знаю, а рутрекер властям зачем? Сделать так, чтобы можно было сказать «мы сделали всё возможное», когда зарубежные праообладатели будут их «доставать» — это одно, а пытаться тратить время и силы на то, на что им, в принципе, наплевать — совсем другое.

Наглядно видно, что вся эта ерунда не работает.
Когда надо — работает. И Telegram не спасает.
У ограничительных законодательных инициатив большая низовая поддержка.

С трудом можно представить, что вы соберёте критичную массу пользователей, требующих ответственный подход к разработке программ. Но этого мало. Нужно, чтобы к движению присоединялись ещё и программисты. Типа такие «Я написал тетрис без багов. Но вы можете подать на меня в суд и отсудить последнюю квартиру, если моя программа вам причинит ущерб, я ведь активист движения ответственного программирования, поэтому буду только `за`».
У ограничительных законодательных инициатив большая низовая поддержка
Вопрос раскрутки. Объясните как от багов в программах страдают дети (в России) или лесбиянки (в США) — и будет вам поддержка.

Народ очень любит любые инициативы, в которых платит кто-нибудь другой.

Нужно, чтобы к движению присоединялись ещё и программисты
А это-то зачем? Принципиальная возможность имеется: Кнут (Metafort и TeX), D. J. Bernstein (Qmail) вполне себе выплачивали вознаграждения за найденные баги.

Но большинство последователей принципа тяп-ляп-и-в-продакшн всё равно не присоединятся. Пока их не заставят.
Для пропаганды нужен образ врага, иначе никак.
А поставить всех своих программистов в один ряд с педофилами и агентами ГосДепа, будет очень глупо со стороны государства.
А это-то зачем?
Чтобы как-то оправдать новые законы, показать, что есть «белые» программисты, которые понимают и поддерживают их.
Принципиальная возможность имеется: Кнут
Нет, это другое. Тут выплаты на условиях разработчика (примерно как в EULA Microsoft: мы погасим любые ваши потери от нашего ПО, при условии, что они не превышают $5).
$5 это за минорный баг у Кнута, чем ближе к единице в номере версии, тем вознаграждение выше.
Это скорее как компенсация в размере 500% у МС за порчу таблицы разделов несистемного накопителя из соседней статьи: Обновление ноутбука с Windows 10 1903 — от кирпича до потери всех данных...
Откуда взялись 500%? Мы тут говорим о ситуациях, когда разработчик сам готов оплачивать свои баги. И больше $5 редко кто предложит.
Не так давно был перевод на Хабре «Я получил от Кнута чек на 0x$3,00». В ней описывается кухня процесса, выплаты активно продолжаются.

Максимальный чек, указанный на данной странице, составляет 0x$772.58.

Дональд Кнут выплачивает вознаграждение в зависимости от серьёзности ошибки. Но подразумевается, что основное тестирование он уже провёл и большинство серьёзных ошибок устранил самостоятельно. В отличие от одной небезызвестной корпорации, которая обогатила бы очень многих, если бы переняла подобную похвальную практику.
Осталось дело за малым: убедить всех программистов добровольно выплачивать штрафы за свои баги, и нужная революция произойдёт «снизу» )))
Ну или на Кикстартере начать сбор средств.
Чтобы деньги бекеров тратить на оплату компенсаций? Но это никак не улучшит ПО, у программистов не будет стимула делать меньше багов, если штраф за них кто-то заплатит.
Никого не волнуют абстрактные баги.

Меня не волнует "баг" с задержкой 700мс при раскрытии меню, но, когда я написал коммент, что всем на это пофиг, со мной не согласились.


Да, и в процессорах и в программах и во всех других вещах есть баги. Пока они не вызывают финансового ущерба — от них ни горячо, ни холодно.

И пока их немного — страховая компания их вполне оплатит.

Кому-то может быть горячо и от незначительных ошибок, и они постараются стрясти деньги, как только ошибки найдут.
В ваших фразах есть противоречие, "всегда есть" != "их немного". А страховой придётся платить всегда, то есть сумма страховой премии должна быть больше или равна сумме выплат. Тогда и страховая не нужна, пользователь как бы сам себе платит.
Или я что-то путаю?


>Создание такого ПО стоит на порядки больше, чем того, что есть
Может и на два, да.

Рад, что вы это понимаете. Но зачем применять самые высокие требования к качеству того кода, который занимается какой-нибудь анимацией пролистывания картинок с котиками? Вложения не оправдают себя. Это же не самолёт, который ни при каких условиях не должен падать, и даже не файловая система, которая не должна терять файлы.

А страховой придётся платить всегда
Вы вообще когда-либо пробовали выдавить из страховой хоть копейку?

Страховые, вообще-то, не склонны раскрывать мошну по первому требованию. Да, если что-то реально «не так» — они выплатят. А вот спорные случаи вам придётся выдавливать через суд и кучу аппеляций.

Или я что-то путаю?
Да, таки путаете. Во-первых страховая редко платит максимальную сумму. Во-вторых, чтобы вы получили хоть что-то — вам потребуется доказать, что вы получили ущерб. Между «ой, у меня тормозит менюшка, давайте мне 100500 денег» и «страховая признала решение суда и выплатила вам на руки 10 рублей» — дистанция немалого масштаба.

Но зачем применять самые высокие требования к качеству того кода, который занимается какой-нибудь анимацией пролистывания картинок с котиками?
Ну это у вас надо спросить — это же ваше предложение, не моё. Я всего лишь предлагаю распространить на программы совершенно обычные правила, которым подчиняются и батом хлеба и игрушка, с токсичным покрытием: страховая должна возмещать ущерб — и только. Докажите (в суде, с привлечением экспертов!), что потеряли миллион долларов из-за того, что Windows начала обновляться в неподходящий момент — деньги получите… не докажите — значит фиг вам, а не деньги.

Это же не самолёт, который ни при каких условиях не должен падать, и даже не файловая система, которая не должна терять файлы.
Тем не менее и самолёты падают и файловые системы данные теряют. Вот только в первом случае вы компенсацию получите легко, а во-втором — дулю с маслом.

Вот это я и предлагаю отменить. Либо отдавайте Windows Server бесплатно, либо обеспечивайте какие-никакие гарантии того, что он таки реально работает.

Блин, даже с производителей каких-нибудь авторучек копеечных можно денег слупить (хоть и непросто), а с производителей ПО — нельзя. Это что за каста таких «неприкасаемых»?
Чтобы спозиционировать мышь на кнопке и сделать щелчок, согласно методике GOMS, уходит около 1 секунды
Верно. Но ведь это только время до окончания щелчка. При наличии задержки мы вынуждены ждать ещё 750 мс…

Я специально проверял скорость открытия контекстного меню окна кнопки на панели задач в Window 7 x64 Professional — так вот там тоже оно открывается не так быстро, как хотелось бы. Но там лаг всё-таки по ощущениям поменьше, а главное, он происходит только при первом клике, при последующих открытие мгновенное. А в XP этого лага вообще нет.

Я понимаю, что это происходит отчасти из-за добавления большого количества новых функций в это меню. Проблема лишь в том, что лично мне они не нужны и я никогда ими не пользовался за все годы…

Как-то добросовестный сотрудник "отдела техподдержки" при замене мышки установил для неё ПО с дискетки, шедшей вместе с мышкой. Там какие-то красивости были обещаны. Комп стал очень задумчивым: мышиный софт по каждому клику поднимал мышиную возню с запуском своих dll etc. Вычислили файловым монитором и отправили мышиное "файло" в небытие.
А ещё забава с удалённым доступом/управлением через спутник. Независимо от скорости пинги очень большие (380-600 миллисекунд). А на каждую операцию по открытию файла или запуска/останова службы через оконные интерфейсы Винда делает множество запросов по безопасности и прочее. Для каждого своя сессия. А ее надо открыть-закрыть. Все просто слетает по тайм-ауту.

750мс еще ладно.
Меня в 10 раздражает невнятное переключение фокуса приложений. Открыто 5 приложений, жмешь WinD — ноль на массу. Переключился мышкой на другое приложение — WinD работает. Или есть приложение с несколькими плавающими окнами; переключаешься с него на второе — а пара окон первого приложения остаются на экране, поверх второго, которое в фокусе. Отодвигаешь это плавающее окно — фокус переключается, разумеется, на первое приложение.
Те же самые приложения в Win7 работали без нареканий.
Хорошо что кто-то про это написал. Теперь я спокоен что долгие годы также страдал и не сделал подобный анализ.
Интересно, а что происходит в ReactOS?
Неужели её разработчикам приходится хвататься за голову и как-то заставлять себя сознательно повторять все эти решения создателей Микрософт?
UFO just landed and posted this here
Вопрос в контексте контекстного меню.
Есть определённое ПО, запускающееся с DVD диска и открывающее с него же данные. На диске присутствует файл «autorun.inf», в секции [autorun] которого присутствует команда
«OPEN=autorun.exe /autorun». Причём при запуске autorun.exe без ключа /autorun происходит ненужная установка ПО в систему, а с ключом — искомый запуск ПО и загрузка данных для просмотра.

Ранее присутствие файла «autorun.inf» на CD/DVD дисках всячески приветствовалось, что не только привело к его распространённости, но и сделало возможным писать программу таким образом, что действие по умолчанию, без указания ключей, будет не соответствовать необходимому в большинстве случаев.
При этом в актуальных версиях Windows файл «autorun.inf» стал изгоем, ибо потенциально небезопасен, а определить опасность конкретного экземпляра файла ОС не берёт на себя труда, легче просто запретить.

При этом расширение файла «inf» исходно было выбрано неудачно, ибо обычно присуще конфигурационным файлам установщиков драйверов и программ. Стандартным действием для данного расширения является «Установить», естественно, не подходящее для данного случая. Есть в контекстном меню ещё действие «Открыть», по которому файл открывается в блокноте, что также для обычного пользователя не приближает запуск нужной программы с нужным ключом.
Раньше в контекстном меню были пункты «Проводник» (открывавший список файлов) и «Открыть» (запускавший действия, описанные в «autorun.inf»).

Вопрос:
1. Кто виноват. Понятно, всё удобное обычно небезопасно и наоборот. Но всё же, если казавшуюся удобной, но оказавшуюся небезопасной фичу пришлось удалить, но есть база ПО, нуждающегося в этой фиче, то не является ли необходимым предоставить пользователю какой-то разумный способ всё же запустить добропорядочную программу с правильным ключом?
2. Что делать. Предложите, пожалуйста, способ, как объяснить пользователю, как всё же запустить, и почему в прошлый раз было всё хорошо, и почему в этот раз иначе.
И главное, как не избежать неудачных выборов, способных в дальнейшем привести к подобным неудобствам.
1. Кто виноват. Понятно, всё удобное обычно небезопасно и наоборот. Но всё же, если казавшуюся удобной, но оказавшуюся небезопасной фичу пришлось удалить, но есть база ПО, нуждающегося в этой фиче

Вторая половина 2019-го года. Где вы вообще актуальный софт с DVD сейчас найдёте, равно и привод для его чтения, кроме как на барахолке?
2. Что делать. Предложите, пожалуйста, способ, как объяснить пользователю, как всё же запустить

Сделайте на рабочем столе ярлык для запуска с правильными параметрами. Или перезапишите сам диск, внеся изменения в его образ, сделав там в корне ярлык для запуска с правильными параметрами.
Вы удивитесь, но в некоторых отраслях DVD актуален и заменить пока нечем, стоимость болванки остаётся заметно ниже стоимости флешек.
Ну и лицензионный контент. У одного знакомого есть коллекция узкоспецифичных видеоуроков, выпускавшихся совсем небольшим тиражом.

Сделать ярлык можно, но пользователю нужно будет объяснить, что такое путь к файлу. Быстрее, конечно создать ярлык за него. Но если пользователь перейдёт на другой компьютер, операцию придётся повторить.
Нужна инструкция типа «Делай раз».

Всё же, DVD/BD не совсем дремучий legacy, как скажем сканер на lpt порту или факс-бумага; оборудование и расходники всё ещё производятся, продаются и потребляются. И просто взять и запретить автозапуск как-то неправильно.
Если рассматривать компьютер с ОС как законченное бытовое устройство, то запрет автозапуска диска ведёт к коренному изменению потребительских свойств.
Вы удивитесь, но в некоторых отраслях DVD актуален и заменить пока нечем, стоимость болванки остаётся заметно ниже стоимости флешек.

А что за отрасли, если не секрет? Раньше DVD активно использовались, например, в издательской деятельности, в рекламной и т.д., где шёл активный обмен крупными файлами макетов, фото, печатки, видео и т.д. Ну а сейчас-то их там уже нет и в помине. Флешка на 8Гб стоит столько же, сколько десяток одноразовых болванок, к тому же несколько гигабайт можно спокойно через файлообменник перебросить.
то запрет автозапуска диска ведёт к коренному изменению потребительских свойств.

Я бы сказал, является дополнительным стимулом отправить эту технологию на свалку легаси :)
Медицина, например. Пациентам во многих случаях результаты выдаются на болванках. А пациент может передать диск лечащему врачу, при этом сам не быть пользователем ПК вообще.
Да, любые данные можно передать, скажем, по электронной почте. Но это может стоить дополнительных телодвижений.
Медицина, например. Пациентам во многих случаях результаты выдаются на болванках.

Честно, я в медицине не специалист, а пользователь. Но в силу возраста уже достаточно активный пользователь, к сожалению. Но вот я ничего не знаю про существование клиник, где какие-то результаты чего либо пишут на болванки. Лаборатории сбрасывают анализы на почту, и в онлайне выкладывают. Клиники — точно так же, плюс на флешку пишут при желании. МРТ — на флешку. Даже в старой доброй районной больничке, там где ещё бумажные карточки в регистратуре в шкафах стоят, и то есть онлайновая система.
Да, любые данные можно передать, скажем, по электронной почте. Но это может стоить дополнительных телодвижений.

По сравнению с вознёй с записью на болванку? Да ну.
А пациент может передать диск лечащему врачу, при этом сам не быть пользователем ПК вообще.

Ну а флешка чем плоха? Это же в тысячу раз удобнее, да и дешевле в итоге.
Вся лучевая диагностика — УЗИ, КТ, МРТ, конусная томография стандартно пишутся на CD/DVD. Да, на флешку тоже можно, но в некоторых случаях требует дополнительных действий. Просто ПО там обновляется нечасто и вопрос юзабилити не на первом месте.
USB порты могут быть вовсе отключены, и не всегда это необоснованно — есть ненулевая вероятность заразить систему.

Почта это перенос на другой компьютер, ибо интернет на основном, подозреваю, обычно не доступен.

Флешка хороша, но DVD болванка в 20 раз дешевле. Маленьких дешёвых флешек (<4ГБ) практически нет в продаже. Хотя заказывать производителям можно — видел брендированные 2ГБ флешки с рекламой, отсыпаемые вендором (не IT) горстями.
И флешка вряд-ли подходит для долговременного хранения архива ввиду постепенной утери заряда флеш памятью.
И флешка вряд-ли подходит для долговременного хранения архива ввиду постепенной утери заряда флеш памятью
Современные болванки дохнут куда быстрее, чем флешки.

А если на солнце полежат, так и за неделю могут скончаться. Так что не аргумент. Никто не пишет всё это на кварцевые диски долговременного хранения…
Verbatim (Mitsubishi Chemical) покупать можно смело до сих пор. Процент брака невелик, ошибки возникают обычно при записи, а не при чтении. Проблемные болванки чаще встречаются в упаковках по 100, чем по 50, из чего можно сделать вывод о том, что брак скорее связан с неправильной перевозкой, чем с хранением или изготовлением. Попадались упаковки, явно хранившиеся на промёрзшем бетоне без поддона — вся нижняя часть уходила в брак, верхняя успешно использовалась.

Не дохнут, из немалого архива за 15 лет пока читается всё что пробовал.
Хранится архив в вертикально стоящих папках в шкафу в офисном помещении.

Хранение на солнце явно не является правильным. Ультрафиолет в больших дозах вообще далеко не каждый материал переносит.
То же самое касается и флешек. Владелец кучи сувенирных дохлых флешек.
Ну я вам верю, но… я такого не видел уже много лет. У нас УЗИ делают распечатки на месте и по просьбе пишут на флешки, МРТ тоже. Я даже не представляю, где сейчас можно вообще найти работающий привод DVD, они ведь дохнут достаточно быстро при интенсивном использовании, а в компьютерных магазинах их уже и не купить.
Флешка хороша, но DVD болванка в 20 раз дешевле

Ну почему в 20 раз? Флешка на 8 Гб стоит примерно столько же, сколько упаковка на 10 одноразовых дисков 4.7Гб.
И флешка вряд-ли подходит для долговременного хранения архива ввиду постепенной утери заряда флеш памятью.

Так DVD точно так же деградируют со временем. Но в любом случае, данные вашего УЗИ или МРТ через десять лет будут не слишком актуальны :)
Так или иначе, чем быстрее в продаже исчезнут DVD-диски, тем быстрее самые ленивые диагностические центры пошевелятся, и перейдут на флешки. И всем будет лучше.
Делал в прошлом году КТ зубов, сами записали и отдали мне КД.
А вам его есть где посмотреть, кстати?
Кста, да. Три DVDD дома, два на работе.
Ну, это ещё повезло. У меня только в пятилетнем ноутбуке живой остался. На работе DVD есть, но я как-то попробовал им воспользоваться, он уже ничего не читает.
Результаты исследований — массивные 3D данные. На плёнку вывести можно максимум несколько десятков изображений. Что делать, если нужное на плёнку не попало? Сканироваться заново? Или всё же прочитать имеющиеся данные и на их основе сделать нужную проекцию?

К счастью, есть требования к сохранению архива данных в течение продолжительного периода. Хотя сюда сменные hdd подходят лучше, чем DVD или флешки.

Да, приводы массово дохли, причём у некоторых моделей не лазер садился, а просто перегревались чипы, независимо от фактического использования. На 50 одинаковых компьютерах с приводами NEC за 4 года выжило всего несколько приводов, несмотря на полную невостребованность (использовался Linux, пользователям просто нечего туда было воткнуть).

Но не все. Некоторые модели работают годами без заметной деградации.

Купить привод можно, хотя выбор моделей действительно невелик. Спрос тоже есть.
Недавно на e-Bay без особого шума разошлось несколько сотен современных приводов BD-RW Plextor по $60 (стандартный ценник около $400), кто-то же их разобрал.
Собственно BD-RW, как и ранее DVD передержала индустрия, но, в отличие от DVD они практически не выстрелили. В результате остались дорогими и приводы, и болванки. Но привод BD-RW оснащён большим кешем и более производительным контроллером, что по отзывам хорошо сказывается на качестве, скорости и стабильности записи/чтения, в том числе и DVD.

Болванки Verbatim пока не в дефиците.

Да, флешка стоит как упаковка 10хDVD-R, но 100хDVD-R обходятся в два раза дешевле за штуку.

По деградации данных на DVD уже писал — архив за 15 лет пока читабелен.

Актуальность продолжительного хранения данных определяется разными факторами. Есть хронические заболевания, когда пациент раз в год повторяет исследование, при этом отслеживается динамика. Есть требования к хранению медицинской документации. Есть страховая и судебная медицина. Есть научные работы.

Степень лености медицинского центра, к сожалению, никак не влияет на политику вендора медоборудования в отношении функциональности и удобства ПО, а выбор вендоров далеко не безграничен.
И, скорее всего, самый ленивый медцентр пойдёт навстречу пожеланиям пациента и найдёт способ записать данные на флешку/отправить по электронной почте. Но это может потребовать дополнительных действий, т.к. ПО может не поддерживать прямую запись на флешку, а интернет должен быть недоступен по соображениям безопасности данных.

Всем, несомненно, станет лучше, как только каждый начнёт заботиться об общем благе. А в качестве упражнения на этом пути предлагаю потребовать снимок флюорографии в государственном лечебном учреждении в цифровом виде, или хотя бы в виде плёнки.
т.к. ПО может не поддерживать прямую запись на флешку

А разве в медицинском ПО есть прямая запись на DVD? Они ведь точно так же пишутся «руками» со всеми необходимыми телодвижениями.
А в качестве упражнения на этом пути предлагаю потребовать снимок флюорографии в государственном лечебном учреждении в цифровом виде, или хотя бы в виде плёнки.

Зависит от оборудования. У нас, когда стоял старый советский флюорограф (тот, который в виде шкафа с металлической дверью), вряд ли записывали на флешку. Сейчас вполне могут :)
А разве в медицинском ПО есть прямая запись на DVD?
В обсуждаемом как раз есть. Причём создаётся как раз DVD с программой просмотра в автозагрузке, так что врач просто вставляет DVD и может рассматривать всё, не нужно даже задумываться ни о чём.

Конечно когда эту всю «прелесть» задумывали никто не подумал о том, что точно также беспроблемно на этот DVD можно и вирус прописать… и вместо просмотра картинок получить «убитый» компьютер…
Верно, запись сразу на DVD.
Задумываться почти не о чем (см. комментарий).
Вирус, конечно, попасть может, собственно поэтому ни интернета, ни флешек с улицы там быть и не должно.

Современное оборудование действительно сразу цифровое, что и удобнее и позволяет значительно снизить дозовую нагрузку. Можно и в древний флюорограф современную чувствительную матрицу впихнуть. Проше всего переснять с негатоскопа смартфоном, так чаще всего и делают, т.к. иначе нужен сканер формата A3 с возможностью сканировать негативы с высокой оптической плотностью.
Вирус, конечно, попасть может, собственно поэтому ни интернета, ни флешек с улицы там быть и не должно.
Зашибись, конечно. А тот компьютер, с которым работает врач, типа, пусть загаживается чем угодно? Принцип «к пуговицам претензии есть?» в деле…
Вирус на компьютер, который пишет диски может попасть (из интернета или с флешки), но не должен, чтобы компьютер на стал распространителем. Поэтому там нет интернета и флешек. В чём парадокс?
Парадокс в том, что мы, типа, «защищаемся» от вирусов, отключая на компьютере, который пишет диски, USB и интернет — но создаём при этом такие диски, которые вынуждают нас на другом компьютере (то, на котором снимки будут смотреть) запускать всё-что-угодно-с-диска-без-проверки.

Где гарантия, собственно, что диск, который мы туда суём — без вирусов?
А как они на выданный нам диск попадут (если мы знаем, что диск — с «безопасного» изолированного компьютера)?
А это-то мы откуда знаем? Диск, однако, выдаётся на руки клиенту, а он и перепуть может. И вставить вместо своих снимков какой-нибудь Zver CD с кучкой троянов.

Можно представить себе, что и МРТ и компьютер врача — всегда строго в одном медицинском учреждении… но тогда смысла в DVD — вообще никакого, можно данные по локалке перебросить.
А, прошу прощения, не понял вашу мысль. Я имел в виду, что пользователю стоит пихать в дисковод только надёжные диски из проверенных источников — и клиника таким является благодаря отсутствию интернета на компе, используемом для записи, всё сделано логично на мой взгляд.
Я имел в виду, что пользователю стоит пихать в дисковод только надёжные диски из проверенных источников
Как это предполагается обеспечивать?

и клиника таким является благодаря отсутствию интернета на компе, используемом для записи, всё сделано логично на мой взгляд.
Только на очень-очень первый взгляд.

Если клиника имеет свой собственный МРТ — то никакие диски ей вообще не нужны, снимки/модели передавать можно и по сети. А если МРТ вам приносит пациент, то никаких автозагрузок и начего запускаемого с этого DVD вам тоже не нужно, так как вы не можете ничего гарантировать на тему безопасности этого DVD.
Как это предполагается обеспечивать?
Принудительно — никак. Я про добровольные действия ответственного юзера. Это как бы очевидно, как ранее было очевидным, что не стоит жить без установленного антивируса (в середине нулевых примерно).

А если МРТ вам приносит пациент, то никаких автозагрузок и начего запускаемого с этого DVD вам тоже не нужно, так как вы не можете ничего гарантировать на тему безопасности этого DVD.
Вот тут кстати очень пригодилось бы платное антивирусное решение для сканирования дисков, которые приносят клиенты…
Это как бы очевидно, как ранее было очевидным, что не стоит жить без установленного антивируса (в середине нулевых примерно).
Не знаю уж кому это «было очевидным». Я не пользовался антивирусом ни в середине нулевых, ни сегодня.

Просто не запускайте бинарники, полученные неизвестно от кого (как вы предлагаете) — и будет вам «щастя».

Вот тут кстати очень пригодилось бы платное антивирусное решение для сканирования дисков, которые приносят клиенты…
Вот тут бы пригодилась стандартизация форматов, чтобы не требовалось запускать на рабочем компе бинарники, полученные от человека, которого вы первый раз в жизни видите и, возможно, больше не увидите никогда.

Но за отсуствием альтернативы виртуалка (можно даже с Windows XP, какая разница, что там патчей безопасности нет, если они в «песочнице», очищающейся после ухода пациента) справляется.

Тот факт, что хост-система, при этом не открывает ничего с этих дисков (потому как Linux, хотя вроде Windows 10 тоже не запускает ничего, как тут писали) — скорее преимущество, чем недостаток…
Вот тут бы пригодилась стандартизация форматов

Данные со всяких там томографов/рентгеновских аппаратов вполне себе имеют стандартизованные форматы, см. DICOM.
Поэтому достаточно не читать на носителях ничего лишнего, отображая врачу лишь те файлы, которые непосредственно касаются медицинских данных.
DICOM, великиий и ужасный, к сожалению содержит существенный изъян применительно к Windows системам. Он родился на Unix системах, где расширений файлов нет. А на Windows системах расширение файла используется для определения стандартных реакций на него — какие программы использовать для просмотра, редактирования и других операций над этим файлом.
Файл «DICOMDIR», содержащий список изображений, не имеет расширения и к нему невозможно применить стандартную открывалку. Кроме того, невозможно одновременно записать два файла с одинаковым именем в одну папку, поэтому данные из разных файлов мержатся в один, что неудобно. Но стандарт есть стандарт.
Можно проигнорировать «DICOMDIR». Обычно вся информация, присутствующая в нём, дублируется в одиночных изображениях (что точно не ускоряет их обработку). Это своеобразная небыстрая БД. Но тогда изображения будут импортировться, а не читаться напрямую.
тем быстрее самые ленивые диагностические центры пошевелятся, и перейдут на флешки. И всем будет лучше
Зачем? Флэшка — то всё-таки многоразовое личное хранилище информации, которое я всегда ношу с собой. Почему медицинский центр обязан дарить мне некий универсальный девайс, который не read-only, и который я потом смогу использовать долгие годы? Просто потому, что цена мизерная? Но логически это бред, да и мне это не нужно, я всегда смогу купить понравившуюся по дизайну/характеристикам флэшку сам, если будет потребность.
Почему медицинский центр обязан дарить мне некий универсальный девайс, который не read-only, и который я потом смогу использовать долгие годы?

А почему дарить? Он вам может записать на ваш девайс, который вы принесёте с собой. Или ещё лучше — дать вам логин/пароль к странице, где вы можете всегда посмотреть и скачать данные вашего обследования, увидеть всю вашу историю обследований, сравнить динамику показателей. Давать сейчас диск DVD, чтобы половина пациентов ещё поискала, где бы его было можно прочитать, это уж точно не очень хорошая идея.
Он вам может записать на ваш девайс, который вы принесёте с собой.
Почему бы и нет, конечно может. Проблема в отсутствии USB портов на некотором специализированном оборудовании, в этом всё дело?

Или ещё лучше — дать вам логин/пароль к странице, где вы можете всегда посмотреть и скачать данные вашего обследования, увидеть всю вашу историю обследований, сравнить динамику показателей.
Многие платные клиники в питере типа СМ-клиник уже давно так делают (предоставляют личный онлайн-кабинет). Однако есть учреждения, у которых по каким-то причинам такого кабинета ещё нет — мне кажется, нет ничего плохого в том, чтобы они продолжали выдавать диски.

Я в курсе, что сейчас эра мобайла (смартфоны, планшеты), да и в ноуты приводы ставить перестали в погоне за меньшим весом и толщиной. Но как бы это не проблемы клиники, что у человека дома нет стационарного ПК, разве нет? Более того, диск ведь нужен и не для просмотра дома, а чтобы потом в другую клинику его отнести показать :)
Но как бы это не проблемы клиники, что у человека дома нет стационарного ПК, разве нет?

Ну вообще, это и проблема клиники тоже. Если они дают пациенту какие-то данные, то очевидно же, что пациент должен иметь возможность ими воспользоваться. В стационарных ПК, купленных в последние лет пять, сейчас тоже попробуй найди оптический привод. И это же касается и ПК в «других клиниках».
Выдаваемые пациенту результаты исследования — это заключение врача-рентгенолога и плёнка с характерными изображениями. Эти документы предназначены для лечащего врача, направившего пациента на исследование, которое призвано уточнить предварительный диагноз.

Диск со всеми изображениями выдаётся, но не является основным, а служит, скорее, для архивных целей. Он может использоваться для дополнительной диагностики лечащим врачом, например. Или для планирования операции/изготовления имплантов. Но не все врачи обязательно должны обладать опытом чтения снимков. Тем более, пациенты.
И не любая патология приводит к заметным изменениям на снимках. Не всё вообще видно, поэтому иногда приходится использовать все возможные методики лучевой диагностики (УЗИ, КТ и МРТ плюс контрастирование, ПЭТ). А также определённый набор анализов для предполагаемых патологий.

Сейчас нейронные сети добиваются заметных успехов в диагностике некоторых патологий. Не исключено, что в обозримое время появятся облачные экспертные системы, объединяющие обобщённый опыт специалистов и возможности нейронных сетей, доступные желающим получить дополнительную диагностику.
Диск со всеми изображениями выдаётся, но не является основным, а служит, скорее, для архивных целей.
Вообще-то только он и выдаётся «по умолчанию».

это заключение врача-рентгенолога и плёнка с характерными изображениями.
А вот за это — уже нужно платить. Часто — столько же, сколько за саму томограмму. При этом лечащаму врачу — это всё нафиг не нужно, зачастую, если есть томограмма — он сам на ней может всё, что нужно посмотреть.

Но не все врачи обязательно должны обладать опытом чтения снимков.
Серьёзно? А ещё они не должны по русски уметь писать, наверное.

Томограмма тем и отличается от рентгеновского снимка, что для работы с ней не требуется специального обучения и навыков «опознания проблем по странным пятнам».

Не всё вообще видно, поэтому иногда приходится использовать все возможные методики лучевой диагностики (УЗИ, КТ и МРТ плюс контрастирование, ПЭТ). А также определённый набор анализов для предполагаемых патологий.
Это уже другая история. Наиболее часто МРТ нужен хирургам — и им нужно просто увидеть как у конкретного человека устроены кости и куда идут сосуды. Тут нужен чистый МРТ без всяких «плёнок с характерными изображениями».

А сложная диагностика — да, понятно, куда ж без неё. Но это — уже другое… далеко не самый распространённый вариант… собственно если уж речь должна до «всех возможных методик» — то это, скорее всего, уже стационар и никаких дисков пациенту «на руки» выдавать не нужно…
В стационарных ПК, купленных в последние лет пять, сейчас тоже попробуй найди оптический привод. И это же касается и ПК в «других клиниках».
Вы про предсобранные ПК, или сейчас вообще купить DVD/BD привод почти не реально?
Про «базовую поставку». Заказать привод и вставить можно, конечно. Даже флоп 5 дюймовый, если сильно приспичит. Вот 8 дюймов, похоже, «совсем всё».
И удобнее и дешевле, спору нет.
Но вот делал 3 года назад томографию, сканер, немецкий, пишет сам всё что надо. Только на диск ДВД. Только(!!!) на DVD+R. Оббегал 9 или 10 точек, только в одной сумел найти +R, продавец сказал давно лежат, никому не надо.
UFO just landed and posted this here
А что за отрасли, если не секрет?
Например фотографы на DVD фотки клиентам отдают, насколько я знаю. Плюс вы же сами сказали, что одна флэшка = 10 болванок — то есть флэшка обойдётся нам в 10 раз дороже при том же объёме, если брать например двухслойные диски. Да, скорость записи на DVD существенно ниже, но это не такая большая проблема.
Например фотографы на DVD фотки клиентам отдают, насколько я знаю

Опять же таки, наверняка в мире немало свадебных фотографов, живущих в местах, где ещё нет нормального интернета, но уже есть зеркалки. Но в отличии от томографов, про эту категорию потребителей DVD уж точно можно и нужно забыть :) Я думаю, все клиенты сейчас прекрасно переживут без такой семейной реликвии, как диск в черном пластиковом боксе с распечатанной на струйнике обложкой с сердечком, голубями и прочей колхозной хренью.
Тем не менее всё это пока живёт и здравствует. Это у ITшников пятилетний комп воспринимается как седая древность. А в мире «обычных людей» и техника десятилетней давности не особо древней считается…
Я думаю, все клиенты сейчас прекрасно переживут без такой семейной реликвии, как диск в черном пластиковом боксе с распечатанной на струйнике обложкой с сердечком, голубями и прочей колхозной хренью.
А по-моему это мило. Не обязательно это должен быть колхоз, зависит от уровня и качества исполнения обложки и самого контента :)

В любом случае, диск хорош уже тем, что это материальный предмет, который можно потрогать (и даже передать в наследство детям и внукам, если доживёт физически), а не просто набор нулей и единиц.
Дело не в том, что «мило». Дело в том, что
а) флешки имеют обыкновение умирать внезапно. И кроме того, нынешние — еще и быстро.
б) в некоторых областях важно, чтобы записанная инфа была рид-онли. Чтобы ее 1) не изменили и 2) не перезаписали случайно.

Так что диски жили и продолжат жить.

На моём компьютере с Windows 10 два монитора, и основным выбран левый. Как результат, модный трей уведомлений (как на Android, да) находится на левом мониторе, в правом нижнем углу. Так вот, если быстро кликать по трею, можно наблюдать, как шторка уведомлений, не сворачиваясь и не уменьшаясь в размерах, уезжает на правый монитор, и только потом что-то "просыпается", и шторка пропадает.
Асинхронный код /s

Если вы хотите научиться проводить подобный анализ, тогда скачайте мой инструмент UIforETW и прочитайте туториалы, ссылки на которые выложены здесь.

Прямо захотелось скачать и применить!


Забавный факт: эти *.automaticDestinations-ms не просто какие-то куски бинарных данных, а контейнеры OLE Compound Document. Этот же тип контейнеров использовал MS Office вплоть до перехода на zip-архивы в качестве основы для *.docx, *.xlsx, *.wtfx. В случае любопытства можно заглянуть внутрь этих файлов при помощи Far Manager, например.

Вернулся сюда чтоб посмотреть, может еще кто какие инструменты применяет для отладки всякого рода ситуаций… а тут… ну да ладно, кто еще что использует: procmon, dependencywalker?
Вот из поста еще интересный инструмент, пока не было случая поиспользовать.

В общем, что еще?
Отличный перевод — наполовину состоящий из кусков моего перевода, опубликованного вчера в песочнице.
Пожалуйста, конечно, можно и без атрибуции, я не гордый, но инвайт хоть дайте.
У меня компьютер работает с такими тормозами уже год на WIN10. Думал, что это глюк моей версии ОС или «происки» Microsoft. Это, кстати, стало толчком к переходу на Linux. Оставил глючную десятку для жены и дочери.
Кстати, у меня, если удалить файл f01b4d95cf55d32a.automaticDestinations-ms
1 он сразу пересоздается
2 пропадают прикрепленный мной папки в «быстрый доступ» в проводнике.

Articles