Онтологическое Небытие
То, чего нет
Однажды Артемий был дояр. Он выходил на пасеку и искал вымя. Но редки были случаи, когда находил на пасеке вымя Артемий. По этому поводу он любил сокрушаться, что перевелись вымена на Руси. Чтобы опровергнуть это убеждение, коровы иногда приходили к Артемию на пасеку.
Так он и остался в неведении.
Так он и остался в неведении.
Артемий не любил суп. Он считал, что суп неэстетичен, а вермишель и морковь не сочетаются с жидкой консистенцией. Однако он его ел. Другой еды у Артемия не было. Артемий ел и плевался. И говорил супу:
- Мудак ты, суп!
А супу было пофиг. Он был вегетарианцем.
- Мудак ты, суп!
А супу было пофиг. Он был вегетарианцем.
Жил-был Артемий. Нраву он был хаусного и всем досаждал, за что его и любили.
Однажды Артемий пошёл на рыбалку. Он пришёл без удочки, с одним пустым ведром. Поставив ведро на берегу рядом с собой, он громко прокричал в воду:
- А ну, пошли все нахуй, мудаки!
Большинство рыб в ужасе ретировалось, а часть рыб сами попрыгали ему в ведро, и было их столько, что все не влезли. Артемий взял ведро, а тех рыб, что не влезли, оставил до следующей рыбалки.
Однажды Артемий пошёл на рыбалку. Он пришёл без удочки, с одним пустым ведром. Поставив ведро на берегу рядом с собой, он громко прокричал в воду:
- А ну, пошли все нахуй, мудаки!
Большинство рыб в ужасе ретировалось, а часть рыб сами попрыгали ему в ведро, и было их столько, что все не влезли. Артемий взял ведро, а тех рыб, что не влезли, оставил до следующей рыбалки.
Из комментов к багу
...
tester(me): in requirements, there is no line break before the link.
PM(project manager): Requirement sucks
...
tester(me): links after the paragraphs should say "Click here for details"
PM: Requirement sucks
...
tester(me): in requirements, there is no line break before the link.
PM(project manager): Requirement sucks
...
tester(me): links after the paragraphs should say "Click here for details"
PM: Requirement sucks
Очень часто программисты десктопных приложений сталкиваются с задачей написания прогресс-баров (progress bar). Цель данной статьи - дать начальное представление о том, как правильно реализовать прогресс-бар.
Для начала развеем несколько распространенных заблуждений о прогресс-барах.
Заблуждение 1: Прогресс-бар призван показывать процент оставшегося времени выполнения какого-либо действия.
Это самое распространенное заблуждение о прогресс-барах, которое в корне неверно. Действительно, любой опытный системный архитектор скажет вам, что это невозможно. На время выполнения операции влияют сотни вещей: конфигурация аппаратного обеспечения, версия операционной системы, наличие свободных ресурсов (заметим, эта величина изменяется динамически), а также совместимость вашего приложения с другими процессами, запущенными параллельно. А если пользователь во время выполнения вашей программы "подвесит" или выключит компьютер, то время выполнения может увеличиться до плюс бесконечности.
Для чего же нужен прогресс-бар? Ответ прост: он служит для развлечения пользователя. Иногда бывает очень скучно ждать, например, пока установится операционная система. Для этого разработчики показывают прогресс-бары и картинки.
Заблуждение 2: Прогресс-бар не обязан все время увеличиваться, любые другие прогресс-бары так же хороши.
Разработчики, знакомые с тезисами заблуждения 1, иногда считают, что прогресс-бар может вести себя как ему вздумается. Например, после достижения своего максимума, он может начать уменьшаться. Другие программисты делают прогресс-бар в виде "зацикленного" прямоугольничка, которые ездит по своей полоске, словно бегущая строка.
Если вы встретите такой прогресс-бар, знайте: он реализован неправильно! Дело в том, что в этом случае пользователь не чувствует ПРОГРЕСС, а это ключевое слово для прогресс-бара, как явственно следует из названия. Пользователь должен видеть, что программа работает и что-то делает, даже если это не так.
Теперь несколько советов о том, как необходимо писать прогресс-бары с точки зрения юзабилити. Абсолютное большинство современных прогресс-баров реализовано именно так, включая известные продукты вроде инсталлятора MSI от Microsoft.
Без ограничения общности, рассмотрим реализацию прогресс-бара на примере инсталлятора йогурта. Не будем останавливаться на технических деталях инсталляции йогурта, а заострим внимание непосредственно на принципах построения прогресс-бара.
Для того, чтобы прогресс был хорошо виден, бегунок должен увеличиваться не медленнее, чем раз в пять секунд. Помните, однако, что приращение не должно быть равномерным. Лучше задать случайное время приращения бегунка от одной секунды до пяти. Впрочем, этот интервал не точный и может быть изменен в зависимости от ваших эстетических убеждений.
Что делать, если прогресс-бар уже дошел до конца, а операция еще не завершена? Уменьшать длину бегунка, как мы помним, недопустимо, а развлекать пользователя по-прежнему необходимо. Вот несколько простых советов:
- Когда бегунок подошел к концу, покажите пользователю следующий прогресс-бар. Чтобы пользователь понял, что уже выполненные действия никуда не пропали, придумайте каждому из прогресс-баров свое уникальное название. Желательно написать что-нибудь непонятное для пользователя, но интуитивно знакомое программистам, например "регистрация компонент" или "очистка кэша".
- Подбадривайте пользователя оптимистичными названиями прогресс-баров, например: "Завершение установки". Ничего страшного, если этот прогресс-бар закончится. Главное - назвать следующий более оптимистично, например "Удаление инсталляционных файлов".
- Если вы не в силах придумать более оптимистичное название, чем предыдущее, остановите движение прогресс-бара на длительное время. В это время название следует поменять на уважительную причину остановки прогресса, например: "Удаление временного файла _347ocx.cab (476573 Мб)". Размер файла в данном примере должен быть достаточно большим, но не забудьте убедиться, что у пользователя было такое количество места на диске перед тем, как он запустил инсталлятор. Кроме того, число не должно быть круглым ни в десятиричной, ни в двоичной системах - обычно это вызывает подозрения.
- Если ваша фантазия иссякла, а последний прогресс-бар уже дошел до конца, выждите еще некоторое время. Пусть пользователь считает, что установка уже окончательно завершена, и наличие вашего сплэш-скрина обусловлено тормозами его операционной системы (независимо от того, какая это ОС, пользователь как правило убежден, что его система написана некачественно).
- Если инсталляция йогурта превышает все ваши допустимые оценки, существует еще один секрет. Покажите пользователю диалоговое окно "Систему необходимо перезапустить". Если пользователь нажмет кнопку "Нет", просто уберите сплэш-скрин и продолжайте работать в фоновом режиме. Если пользователь выберет вариант "Да", можете убирать или не убирать сплэш-скрин (ориентируйтесь на собственное чувство прекрасного) и спокойно продолжайте выполнение операции. Главное - не забыть перезагрузить компьютер после того, как вы действительно
завершите инсталляцию.
- Если вы дошли до предыдущего пункта, незамедлительно пропишите ваш инсталлятор в автозапуск операционной системы и тщательно журналируйте процесс установки. Пользователь может не дождаться вас и выключить компьютер кнопкой. В этом случае при следующем запуске ОС вы сможете в фоновом режиме тайно от пользователя завершить установку.
Таковы несложные правила создания прогресс-баров. Они уже помогли разработчикам многих всемирно известных программ, а теперь помогут и вам. В добрый путь!
Егор Апрельский,
специально для журнала "Онтологическое небытие"
Для начала развеем несколько распространенных заблуждений о прогресс-барах.
Заблуждение 1: Прогресс-бар призван показывать процент оставшегося времени выполнения какого-либо действия.
Это самое распространенное заблуждение о прогресс-барах, которое в корне неверно. Действительно, любой опытный системный архитектор скажет вам, что это невозможно. На время выполнения операции влияют сотни вещей: конфигурация аппаратного обеспечения, версия операционной системы, наличие свободных ресурсов (заметим, эта величина изменяется динамически), а также совместимость вашего приложения с другими процессами, запущенными параллельно. А если пользователь во время выполнения вашей программы "подвесит" или выключит компьютер, то время выполнения может увеличиться до плюс бесконечности.
Для чего же нужен прогресс-бар? Ответ прост: он служит для развлечения пользователя. Иногда бывает очень скучно ждать, например, пока установится операционная система. Для этого разработчики показывают прогресс-бары и картинки.
Заблуждение 2: Прогресс-бар не обязан все время увеличиваться, любые другие прогресс-бары так же хороши.
Разработчики, знакомые с тезисами заблуждения 1, иногда считают, что прогресс-бар может вести себя как ему вздумается. Например, после достижения своего максимума, он может начать уменьшаться. Другие программисты делают прогресс-бар в виде "зацикленного" прямоугольничка, которые ездит по своей полоске, словно бегущая строка.
Если вы встретите такой прогресс-бар, знайте: он реализован неправильно! Дело в том, что в этом случае пользователь не чувствует ПРОГРЕСС, а это ключевое слово для прогресс-бара, как явственно следует из названия. Пользователь должен видеть, что программа работает и что-то делает, даже если это не так.
Теперь несколько советов о том, как необходимо писать прогресс-бары с точки зрения юзабилити. Абсолютное большинство современных прогресс-баров реализовано именно так, включая известные продукты вроде инсталлятора MSI от Microsoft.
Без ограничения общности, рассмотрим реализацию прогресс-бара на примере инсталлятора йогурта. Не будем останавливаться на технических деталях инсталляции йогурта, а заострим внимание непосредственно на принципах построения прогресс-бара.
Для того, чтобы прогресс был хорошо виден, бегунок должен увеличиваться не медленнее, чем раз в пять секунд. Помните, однако, что приращение не должно быть равномерным. Лучше задать случайное время приращения бегунка от одной секунды до пяти. Впрочем, этот интервал не точный и может быть изменен в зависимости от ваших эстетических убеждений.
Что делать, если прогресс-бар уже дошел до конца, а операция еще не завершена? Уменьшать длину бегунка, как мы помним, недопустимо, а развлекать пользователя по-прежнему необходимо. Вот несколько простых советов:
- Когда бегунок подошел к концу, покажите пользователю следующий прогресс-бар. Чтобы пользователь понял, что уже выполненные действия никуда не пропали, придумайте каждому из прогресс-баров свое уникальное название. Желательно написать что-нибудь непонятное для пользователя, но интуитивно знакомое программистам, например "регистрация компонент" или "очистка кэша".
- Подбадривайте пользователя оптимистичными названиями прогресс-баров, например: "Завершение установки". Ничего страшного, если этот прогресс-бар закончится. Главное - назвать следующий более оптимистично, например "Удаление инсталляционных файлов".
- Если вы не в силах придумать более оптимистичное название, чем предыдущее, остановите движение прогресс-бара на длительное время. В это время название следует поменять на уважительную причину остановки прогресса, например: "Удаление временного файла _347ocx.cab (476573 Мб)". Размер файла в данном примере должен быть достаточно большим, но не забудьте убедиться, что у пользователя было такое количество места на диске перед тем, как он запустил инсталлятор. Кроме того, число не должно быть круглым ни в десятиричной, ни в двоичной системах - обычно это вызывает подозрения.
- Если ваша фантазия иссякла, а последний прогресс-бар уже дошел до конца, выждите еще некоторое время. Пусть пользователь считает, что установка уже окончательно завершена, и наличие вашего сплэш-скрина обусловлено тормозами его операционной системы (независимо от того, какая это ОС, пользователь как правило убежден, что его система написана некачественно).
- Если инсталляция йогурта превышает все ваши допустимые оценки, существует еще один секрет. Покажите пользователю диалоговое окно "Систему необходимо перезапустить". Если пользователь нажмет кнопку "Нет", просто уберите сплэш-скрин и продолжайте работать в фоновом режиме. Если пользователь выберет вариант "Да", можете убирать или не убирать сплэш-скрин (ориентируйтесь на собственное чувство прекрасного) и спокойно продолжайте выполнение операции. Главное - не забыть перезагрузить компьютер после того, как вы действительно
завершите инсталляцию.
- Если вы дошли до предыдущего пункта, незамедлительно пропишите ваш инсталлятор в автозапуск операционной системы и тщательно журналируйте процесс установки. Пользователь может не дождаться вас и выключить компьютер кнопкой. В этом случае при следующем запуске ОС вы сможете в фоновом режиме тайно от пользователя завершить установку.
Таковы несложные правила создания прогресс-баров. Они уже помогли разработчикам многих всемирно известных программ, а теперь помогут и вам. В добрый путь!
Егор Апрельский,
специально для журнала "Онтологическое небытие"
Всем привет, кто меня еще помнит!
Так как я уезжаю жить в Москву, всех, кто хочет меня еще раз увидеть в Новосибирске, приглашаю 7-го января в People's на Терешковой, 12а. Мы с Оксаной будем там с 15-00 и до самого вечера, забегайте - буду рад видеть всех, кто будет рад видеть меня. Возможно, это последняя возможность увидеться. Можете передать всем общим знакомым.
Увидимся!
Так как я уезжаю жить в Москву, всех, кто хочет меня еще раз увидеть в Новосибирске, приглашаю 7-го января в People's на Терешковой, 12а. Мы с Оксаной будем там с 15-00 и до самого вечера, забегайте - буду рад видеть всех, кто будет рад видеть меня. Возможно, это последняя возможность увидеться. Можете передать всем общим знакомым.
Увидимся!
В течение этой рабочей недели все сдаем
Элвину кровь!
Он будет патчить легкое.
Группа крови не важна. Перед этим 48 часов не пить, не курить, лекарства и наркотеги не употреблять и не болеть хроническими инфекционными заболеваниями. Кровь сдаем в Облбольницу для Евгения Чеснокова. Отделение торакальной хирургии. Работают они с 9 до 11-ти.
Он будет патчить легкое.
Группа крови не важна. Перед этим 48 часов не пить, не курить, лекарства и наркотеги не употреблять и не болеть хроническими инфекционными заболеваниями. Кровь сдаем в Облбольницу для Евгения Чеснокова. Отделение торакальной хирургии. Работают они с 9 до 11-ти.
Поздравляю всех с Днем Рождения Ёжика.
Всех с наступающим Перельманом.
Если бы я был мусульманином, я был бы суфием.
Только что придумал стих:
Уэы
Уэы
В последнее время все чаще замечаю, что вокруг полно людей, которые верят во всякую херню: в телепатию, в телекинез, в магию, в Кастанеду, в Бога, в домовых, в черные и белые полосы, в квантовую физику... список можно продолжать бесконечно.
Одумайтесь, господа! Мир материален и выверен как часы, в нем нет места эзотерической поебистике. Порой даже самые, казалось бы, умные и адекватные люди покупаются на эту чушь и пытаются "достичь просветления" или "прокачать корреспонденс" или "освоить практику намерения". Ну что им можно посоветовать?
Лечитесь, господа!
А если слишком богатое воображение, уроните какой-нибудь шарик и попытайтесь применить к нему "силу намерения", а потом посмотрите, по какой формуле он полетит. Уверяю вас, это будет все тот же g t квадрат пополам, будь вы хоть Папа Римский.
Одумайтесь, господа! Мир материален и выверен как часы, в нем нет места эзотерической поебистике. Порой даже самые, казалось бы, умные и адекватные люди покупаются на эту чушь и пытаются "достичь просветления" или "прокачать корреспонденс" или "освоить практику намерения". Ну что им можно посоветовать?
Лечитесь, господа!
А если слишком богатое воображение, уроните какой-нибудь шарик и попытайтесь применить к нему "силу намерения", а потом посмотрите, по какой формуле он полетит. Уверяю вас, это будет все тот же g t квадрат пополам, будь вы хоть Папа Римский.
Когда начинаешь всерьез интересоваться устройством мира, неожиданно осознаешь очевидные, но глубоко скрытые вещи.
Вполне очевидно, что квинтэссенция у всех религий мира одна и та же. Но вот частные проявления нередко оказываются неожиданными, и потому забавляют.
Пример.
«Не упоминай имя Всевышнего всуе» = "Дао, выраженное словами, не есть истинное Дао"
Вполне очевидно, что квинтэссенция у всех религий мира одна и та же. Но вот частные проявления нередко оказываются неожиданными, и потому забавляют.
Пример.
«Не упоминай имя Всевышнего всуе» = "Дао, выраженное словами, не есть истинное Дао"
У него нос мохнатый, симпатичный... а он какашки ест (с)
enky
Дорогая доча!
Уже очень скоро ты родишься, научишься ходить, разговаривать и читать. Когда-нибудь, в уже довольно сознательном возрасте, ты найдешь мой ЖЖ и эту запись в нем и узнаешь, каким твой папка был долбойобом, когда был молодой. Потом, придя к нам со своим мужем в гости, ты окинешь своего отца взглядом и поймешь, что он с тех пор ни капельки не изменился.
УАЫЫЫЫ!!! \:^О Да здравствует ГАЗЕБО
Уже очень скоро ты родишься, научишься ходить, разговаривать и читать. Когда-нибудь, в уже довольно сознательном возрасте, ты найдешь мой ЖЖ и эту запись в нем и узнаешь, каким твой папка был долбойобом, когда был молодой. Потом, придя к нам со своим мужем в гости, ты окинешь своего отца взглядом и поймешь, что он с тех пор ни капельки не изменился.
УАЫЫЫЫ!!! \:^О Да здравствует ГАЗЕБО
К нам приходит множество писем, в которых меня часто спрашивают, каким образом охотничьих собак обучают специальной стойке, которую можно часто видеть в мультиках. Охотно отвечаем.
Для того, чтобы обучить собаку охотничьей стойке, ее необходимо тщательно накурить. После того как накуренная собака видит зверя, она реально офигевает и бессознательно становится в характерную позу "фигасе бля!", которую охотники и называют охотничей стойкой.
В следующий раз мы поговорим о том, как обучить медведя ездить на одноколесном велосипеде и играть на гармони.
Спасибо за внимание, всего вам доброго.
Для того, чтобы обучить собаку охотничьей стойке, ее необходимо тщательно накурить. После того как накуренная собака видит зверя, она реально офигевает и бессознательно становится в характерную позу "фигасе бля!", которую охотники и называют охотничей стойкой.
В следующий раз мы поговорим о том, как обучить медведя ездить на одноколесном велосипеде и играть на гармони.
Спасибо за внимание, всего вам доброго.
Все уже заценили рекламу гликодина со смеющимся мешочком?
Пора уже давно было ))) гыгы
Пора уже давно было ))) гыгы
Вообще говоря, флешмоб - это вовсе не игрульки в стиле "поместите эту запись, и блаблабла". Кроме того, это не вишлисты и не гневные восклицания в стиле "Я НЕНАВИЖУ ДОЛБОЕБОВ, КОТОРЫЕ ПИШУТ ПРО СКИДКИ НА АВИАБИЛЕТЫ И ПЕРВЫЙ СНЕГ".
Предлагаю настоящий флешмоб (или флешбом, кому как нравится), в его истинном значении.
Все в спешном порядке переименовываем себя в аське в "Проблядухо". Возрастание энтропии, море положительных эмоций и разорванные мозги по всей стране гарантированы.
Я уже, а вы?
Предлагаю настоящий флешмоб (или флешбом, кому как нравится), в его истинном значении.
Все в спешном порядке переименовываем себя в аське в "Проблядухо". Возрастание энтропии, море положительных эмоций и разорванные мозги по всей стране гарантированы.
Я уже, а вы?
В дополнение к бесплатным программным продуктам, которые встраиваются в другие программы, пора бы уже начать делать железо с открытой архитектурой, встраиваемое куда угодно.
Модуль фотокамеры, модуль телефона, модуль КПК и выхода в интернет, модуль часов, холодильника, МП3-плеера и так далее. И чтобы их можно было соединять в любую комбинацию и встраивать в другие продукты.
Я почему-то уверен, что так оно и будет в любом случае, но, так и быть, дарю идею Универсуму уже сейчас. У кого есть знакомые в президиуме Сони или Самсунга, можете попробовать протолкнуть.
Модуль фотокамеры, модуль телефона, модуль КПК и выхода в интернет, модуль часов, холодильника, МП3-плеера и так далее. И чтобы их можно было соединять в любую комбинацию и встраивать в другие продукты.
Я почему-то уверен, что так оно и будет в любом случае, но, так и быть, дарю идею Универсуму уже сейчас. У кого есть знакомые в президиуме Сони или Самсунга, можете попробовать протолкнуть.
