Тотал коммандер и досовские предшественники подобного принципа работы (NC, VC и т. д.) расчитаны на работу с клавиатурой. Когда-то я ими пользовался, но вот в Windows лично мне привычнее проводник, а он как раз более мыше ориентирован.
Именно потому, что тотал и все подобные файловые менеджеры, навроде, виндуос командера, фара в винде или того же дельфина в линуксах используют такой принцип, мне всегда хочется найти что-либо похожее на проводник, в тех же линуксах на KDE это Konqueror.
Но кто бы что не выбирал, все равно предпочтение будет отдаваться тому, что привычнее, и хотя скорее всего многие не увидят смысла использования мыши в тотал коммандере, для других подобное вполне привычно, а значит более предпочтительно.
Все эти вопросы рассмотрены в книге «Разработка пользовательского интерфейса», автор Тео Мандел. Собственно там рассмотрены интерфейсы начиная с консольных и до наших дней, а так же их преимущества и недостатки. Общую же мысль я уже сформулировал чуть выше, так что вопрос, что же удобнее просто не имеет смысла, так как каждому удобнее то, к чему он привык.
>Возьмем ту, грубо говоря, половину хабраюзеров, которых ни айфоны, ни лебедевы не интересуют… а в чем тут, блин, проблема? Не нравится — не читай.
Хрен с ним с Лебедевым, но яблофоны и все темы связанные с яблоком уже конкретно достали. Плохо не то, что про это пишут, а то, что авторизированные пользователи не имеют возможности запретить показ этой муры лично для себя.
Скопировать цифровые данные уж слишком легко, но китайцы, к примеру, подделывают всё, что угодно, и это из того же разряда.
Вот представим, что инженеры некой страны трудились, разработали продукт и создали производство, но после выпуска его взяли люди не тратившие время на проектирование, разобрали по частям и наладили своё собственное производство.
Кто-то считает, что это плохо, кто-то считает что так и надо. Возвратимся к автомобилю, если бы у людей был автомат позволявший копировать машины, то есть купил Bentley Continental GT, засунул в аппарат, добавил материалы (назовём их болванками), и по выходу получалась бы машина.
Часть людей отказалась бы от такой возможности и ходила пешком или покупала автомобиль у сторонних производителей рассуждая о праве на копирование. Другие бы наштамповали авто для себя и своих знакомых и не заморчивались по этому поводу.
Те кто раньше приучал людей к доступным «пиратским» дискам сейчас бьют себя в грудь оперируя понятиями воровство и прочее, но всё это чистой воды бизнес, желание заработать побольше денег.
Если кому-то приятно считать себя вором или платить деньги когда можно не платить, то это личный выбор каждого.
Почему не поверю, очень даже поверю, я даже поверю, что только по ней и вводили — инспекцию кода. Вот только знания уже забылись видать, раз инспекция названа «недопарным программированием».
В этой книге старательно убеждали, что картостроитель хорошо, а паковщики — быдлокодеры, и вероятно каждый должен стать картостроителем или посчитать себя таким, а иначе он быдло. В размышлениях я понял только одно, подобное разделение ничего не даёт, да и названия подобраны неудачно. Предположим человек захочет запаковать свою карту мыслей, чтобы использовать повторно, и кто же он тогда, паковщик или картостроитель, ведь так или иначе это его собственная карта мыслей.
Между использованием собственной технологии, которая скорее всего была уже кем-то реализована или чужой, разница не так велика, гораздо важнее правильное проектирование системы. А с проводами нужно просто быть внимательней и затаскивать их через одну дверь.
Забейте на этот топик, прочитайте книгу «Совершенный код», там подробно описывается как проводить инспекции кода, а так же про парное программирование в совершенно другой главе.
Вот, а нужно было говорить «а мне нравится. такая неплохая RPG.», но мало кто так думает. Ассоциации с персонажем нет, управляем персами, каждого из которых можно заменить на другого и спокойно продолжить игру. Задания линейны и особой вариативности не наблюдается.
>Многие согласны со мной в том, что МакБук — не совсем обычный ноутбук
Многие согласны, что рождённые с физическими отклонениями, навроде олигофренов, даунов и прочих — особенные дети. Вот все остальные обычные, а эти особенные.
>Любой, кто задумается об этом, обнаружит, что террористами являются люди других религий христиане, иудеи, индусы и сикхи. Он обнаружит, что Мусульмане – жертвы этого террора.
Да, конечно, все кроме мусульман — террористы, потому нужно уничтожить неверных.
>Что касается наследования, то давайте посмотрим на .net framework, где все производные классы и интерфейсы наследуются от Object.
Вот смотрю .NET Framework x.x и не вижу ни одного интерфейса, который бы прямо или косвенно наследовался от класса Object. Интерфейсы могут наследоваться от интерфейсов, но в итоге мы приходим к базовому интерфейсу, который не имеет базового класса Object.
>Базовый класс либо интерфейс нужен для того, чтобы у всех дочерних объектов была одинаковая сигнатура для метода — запуска валидации.
Лучше сказать, что нужен полиморфизм (из вики — полиморфизм в языках программирования — взаимозаменяемость объектов с одинаковым интерфейсом), так как ты пытаешься реализовать именно его.
Во-первых, я за то чтобы в данном случае использовать полиморфизм через интерфейсы, но не полиморфизм через наследование. В основу легла простая мысль из книги совершенный код, а именно — наследование увеличивает сложность связей.
Таким образом если встаёт вопрос использовать ли включение (containment) (в UML — агрегирование) или наследование (inheritance) (в UML — генерализация), наследование используется лишь когда исходная сущность является развитием базовой сущности, а включение, когда она содержит в себе некую сущность.
Здесь у нас полиморфизм, но выводы те же самые, а именно ни в коем случае не использовать в данном случае полиморфизм через наследование, так как наследование увеличивает сложность связей.
>Поискав на хабре топики данной тематики и погуглив, пришёл к выводу, что люди часто изобретают свои собственные велосипеды для реализации механизма валидации.
Да, исключение кидается, исключение перехватывается. Майкрософт создала определённые правила по которым всё это записывается, это как бы общая рекомендация по написанию кода и данный образец ей не следует.
Опять же в книге «Совершенный код» не советуют делать много наследуемых классов, а здесь получается такое увеличение на каждый валидатор. Не вдаваясь в подробности нужно себя спросить будет ли этих валидаторов больше семи разновидностей, и если их больше, то использовать другое решение.
>— базовый класс Validator можно заменить на интерфейс, кому как нравится;
О чём и речь, это не просто решение нравится не нравится, это совершенно разные подходы к программированию. На интерфейсах валидатор сольётся с классом, который он проверяет, используя же наследование придётся включить объект валидатора в класс, и именно он будет торчать в списке валидаторов, а это уже совсем другая история.
>if (/*проверяем имя пользователя*/)
> throw new InvalidUsernameException();
Может лучше вызывать исключение внутри метода проверки. Ну, а дальше пошла какая-то ерунда, уродская замена стандартному механизму исключений, впрочем если нравятся извращения…
>Но ведь это все равно не «рендер в реальном времени».
Отключи трёхмерный ускоритель видеокарты и будешь сильно удивлён скоростью рендера.
>Ведь по идее этих гигагерцев должно с лихвой хватать для не сложной анимации и простых эффектов.
Не знаю как там в мире яваскриптов, но «как это ни странно» без того же 3д ускорителя видеокарты никакие эффекты не могут быть выполнены быстро. Даже на простые задания с полной перерисовкой экрана уйдёт как минимум одно ядро, собственно многие компьютеры только его и имеют, и его ещё будет нехватать.
Таким образом для вывода графики браузеры должны использовать 3д ускоритель, а для интерпретации кода что-то навроде виртуальной машины, только в этом случае можно расчитывать на скоростной вывод.
Да, оперативная память постоянно находится под напряжением, но это же не весь компьютер включённым держать. Ждущий режим всё же экономия энергии, но главное он не шумит пока выключен, если конечно M/B с блоком питания нормальные и всё правильно подключено и настроено в биосе.
>оптимизировать дефрагментацией файлов — это мелочи много не добьешься, тут надо видимо механизм загрузки менять.
В винде этого не сделать по объективным причинам закрытости ПО, а если и можно, то наверное смысла все равно нет. Но вот если линукс так прокачивается, то остаётся только его использовать или ждать, когда такой способ загрузки станет официальным и будет поставляться сразу с дистрибутивом.
А что их обсуждать то. Вот я сейчас засёк включения, выключение своего компьютера (Pentium IV) ждущим режимом используя кнопку на клавиатуре, ОС Windows XP (майский огомор). Первый раз на включение и выключение он потратил 5 секунд, но когда я его спустя 20 секунд второй раз включил и выключил на каждую операцию ушло лишь 3 секунды.
Это при том, что на компьютере включены разнообразные программы (Winamp, Access, Explorer, uTorrent, BitDefender, Qip, Psi, Firefox и т. д.) и серверные службы (Memory Optimizer, SQL Server, PostgreSQL Server, MS SQL Server, SVN Server, BNBT Easy Tracker и прочее).
В общем, на ждущий режим не влияет что и сколько загружено. При переходе в него останавливаются винчестеры, шасси корпуса, кулер блока питания, кулер видеокарты, кулер процессора и компьютер затихает, только лампочка кнопки включения не гаснет, а начинает мигать.
Реально выключаю очень редко, в этом нет смысла, тем более в отличие Stepanow, он у меня не тормозит, даже если так делать в течении многих месяцев (дольше не проверял, всё же иногда перезагружаюсь, когда ставлю разные программы).
>Вообще, интересно, почему эту тему (быстрой перезагрузки и быстрого хибернейта) никто особо не поднимает?
Поднимают, для винды например есть BootVis Tool (http://ru.wikipedia.org/wiki/BootVis), но у меня даже после оптимизации ей — дефрагментации загрузочных файлов и прочего, на загрузку уходит минута, что намного больше чем 3-5 секунд и терпения уже нехватает.
Именно потому, что тотал и все подобные файловые менеджеры, навроде, виндуос командера, фара в винде или того же дельфина в линуксах используют такой принцип, мне всегда хочется найти что-либо похожее на проводник, в тех же линуксах на KDE это Konqueror.
Но кто бы что не выбирал, все равно предпочтение будет отдаваться тому, что привычнее, и хотя скорее всего многие не увидят смысла использования мыши в тотал коммандере, для других подобное вполне привычно, а значит более предпочтительно.
Все эти вопросы рассмотрены в книге «Разработка пользовательского интерфейса», автор Тео Мандел. Собственно там рассмотрены интерфейсы начиная с консольных и до наших дней, а так же их преимущества и недостатки. Общую же мысль я уже сформулировал чуть выше, так что вопрос, что же удобнее просто не имеет смысла, так как каждому удобнее то, к чему он привык.
Хрен с ним с Лебедевым, но яблофоны и все темы связанные с яблоком уже конкретно достали. Плохо не то, что про это пишут, а то, что авторизированные пользователи не имеют возможности запретить показ этой муры лично для себя.
Вот представим, что инженеры некой страны трудились, разработали продукт и создали производство, но после выпуска его взяли люди не тратившие время на проектирование, разобрали по частям и наладили своё собственное производство.
Кто-то считает, что это плохо, кто-то считает что так и надо. Возвратимся к автомобилю, если бы у людей был автомат позволявший копировать машины, то есть купил Bentley Continental GT, засунул в аппарат, добавил материалы (назовём их болванками), и по выходу получалась бы машина.
Часть людей отказалась бы от такой возможности и ходила пешком или покупала автомобиль у сторонних производителей рассуждая о праве на копирование. Другие бы наштамповали авто для себя и своих знакомых и не заморчивались по этому поводу.
Те кто раньше приучал людей к доступным «пиратским» дискам сейчас бьют себя в грудь оперируя понятиями воровство и прочее, но всё это чистой воды бизнес, желание заработать побольше денег.
Если кому-то приятно считать себя вором или платить деньги когда можно не платить, то это личный выбор каждого.
Между использованием собственной технологии, которая скорее всего была уже кем-то реализована или чужой, разница не так велика, гораздо важнее правильное проектирование системы. А с проводами нужно просто быть внимательней и затаскивать их через одну дверь.
Да миллиардом плюс, миллиардом минус, пусть даже несколько десятков миллиардов. Ничего с гуглом не станет, слишком уж жирная это контора.
Вот, а нужно было говорить «а мне нравится. такая неплохая RPG.», но мало кто так думает. Ассоциации с персонажем нет, управляем персами, каждого из которых можно заменить на другого и спокойно продолжить игру. Задания линейны и особой вариативности не наблюдается.
Больше похоже на статистику кто чем пользуется, чем на компьютер мечты. Так что заголовок это чистой воды замануха взятая автором из ниоткуда.
Многие согласны, что рождённые с физическими отклонениями, навроде олигофренов, даунов и прочих — особенные дети. Вот все остальные обычные, а эти особенные.
Да, конечно, все кроме мусульман — террористы, потому нужно уничтожить неверных.
Вот смотрю .NET Framework x.x и не вижу ни одного интерфейса, который бы прямо или косвенно наследовался от класса Object. Интерфейсы могут наследоваться от интерфейсов, но в итоге мы приходим к базовому интерфейсу, который не имеет базового класса Object.
>Базовый класс либо интерфейс нужен для того, чтобы у всех дочерних объектов была одинаковая сигнатура для метода — запуска валидации.
Лучше сказать, что нужен полиморфизм (из вики — полиморфизм в языках программирования — взаимозаменяемость объектов с одинаковым интерфейсом), так как ты пытаешься реализовать именно его.
Во-первых, я за то чтобы в данном случае использовать полиморфизм через интерфейсы, но не полиморфизм через наследование. В основу легла простая мысль из книги совершенный код, а именно — наследование увеличивает сложность связей.
Таким образом если встаёт вопрос использовать ли включение (containment) (в UML — агрегирование) или наследование (inheritance) (в UML — генерализация), наследование используется лишь когда исходная сущность является развитием базовой сущности, а включение, когда она содержит в себе некую сущность.
Здесь у нас полиморфизм, но выводы те же самые, а именно ни в коем случае не использовать в данном случае полиморфизм через наследование, так как наследование увеличивает сложность связей.
>Поискав на хабре топики данной тематики и погуглив, пришёл к выводу, что люди часто изобретают свои собственные велосипеды для реализации механизма валидации.
Это как раз про тебя :)
Опять же в книге «Совершенный код» не советуют делать много наследуемых классов, а здесь получается такое увеличение на каждый валидатор. Не вдаваясь в подробности нужно себя спросить будет ли этих валидаторов больше семи разновидностей, и если их больше, то использовать другое решение.
>— базовый класс Validator можно заменить на интерфейс, кому как нравится;
О чём и речь, это не просто решение нравится не нравится, это совершенно разные подходы к программированию. На интерфейсах валидатор сольётся с классом, который он проверяет, используя же наследование придётся включить объект валидатора в класс, и именно он будет торчать в списке валидаторов, а это уже совсем другая история.
> throw new InvalidUsernameException();
Может лучше вызывать исключение внутри метода проверки. Ну, а дальше пошла какая-то ерунда, уродская замена стандартному механизму исключений, впрочем если нравятся извращения…
Отключи трёхмерный ускоритель видеокарты и будешь сильно удивлён скоростью рендера.
>Ведь по идее этих гигагерцев должно с лихвой хватать для не сложной анимации и простых эффектов.
Не знаю как там в мире яваскриптов, но «как это ни странно» без того же 3д ускорителя видеокарты никакие эффекты не могут быть выполнены быстро. Даже на простые задания с полной перерисовкой экрана уйдёт как минимум одно ядро, собственно многие компьютеры только его и имеют, и его ещё будет нехватать.
Таким образом для вывода графики браузеры должны использовать 3д ускоритель, а для интерпретации кода что-то навроде виртуальной машины, только в этом случае можно расчитывать на скоростной вывод.
>оптимизировать дефрагментацией файлов — это мелочи много не добьешься, тут надо видимо механизм загрузки менять.
В винде этого не сделать по объективным причинам закрытости ПО, а если и можно, то наверное смысла все равно нет. Но вот если линукс так прокачивается, то остаётся только его использовать или ждать, когда такой способ загрузки станет официальным и будет поставляться сразу с дистрибутивом.
Это при том, что на компьютере включены разнообразные программы (Winamp, Access, Explorer, uTorrent, BitDefender, Qip, Psi, Firefox и т. д.) и серверные службы (Memory Optimizer, SQL Server, PostgreSQL Server, MS SQL Server, SVN Server, BNBT Easy Tracker и прочее).
В общем, на ждущий режим не влияет что и сколько загружено. При переходе в него останавливаются винчестеры, шасси корпуса, кулер блока питания, кулер видеокарты, кулер процессора и компьютер затихает, только лампочка кнопки включения не гаснет, а начинает мигать.
Реально выключаю очень редко, в этом нет смысла, тем более в отличие Stepanow, он у меня не тормозит, даже если так делать в течении многих месяцев (дольше не проверял, всё же иногда перезагружаюсь, когда ставлю разные программы).
>Вообще, интересно, почему эту тему (быстрой перезагрузки и быстрого хибернейта) никто особо не поднимает?
Поднимают, для винды например есть BootVis Tool (http://ru.wikipedia.org/wiki/BootVis), но у меня даже после оптимизации ей — дефрагментации загрузочных файлов и прочего, на загрузку уходит минута, что намного больше чем 3-5 секунд и терпения уже нехватает.