Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 47 [показано 10]
14 принципов создания вежливых программ
Степень соответствия запросу: 35,84%
Фрагменты текста поста : ... Мы то и дело слышим ужасные истории о компьютерных системах, которые шлют клиентам чеки на 0... ... Изолировав клиентов от компьютерных систем, можно облегчить труд отдела обслуживания клиентов, однако служащим все равно приходится ими пользоваться... ... Я не хочу слышать свист модема или наблюдать информацию о скорости передачи данных, так же как я не хочу слышать о разводе бармена, сломанном автомобиле парикмахера или алиментах доктора... ... Программы постоянно предлагают мне варианты выбора, которые, по разным причинам, в данный момент недоступны... ... Когда система ручной обработки информации переносится на компьютеры, что-нибудь всегда теряется... ... Чаще всего система компьютеризируется для увеличения объемов обрабатываемой информации, а не для изменения свой функциональности... ... Однако системам работающим вручную присуща гибкость – свойство, которое на так просто выделить среди остальных... ... Хотя автоматизированная система ввода заказов может обработать в миллион раз больше заказов, чем простой служащий, служащий всегда может подстроить работу системы... ... В автоматизированной системе эта возможность исчезает... ... Такая гибкость начисто отсутствует в компьютеризированных системах... ... Компьютерные системы могут находиться только в двух состояниях: не-существование или полное соответствие... ... Любая "ручная" система имеет важное но парадоксальное состояние неопределенности (о котором не говорят, но часто пользуются), когда транзакция может быть принята, но полностью еще не обработана... ... Например, автоматизированной системе требуется информация и о клиенте и о его заказе для того, чтобы выписать счет... ... Тогда как служащий может выписать счет не имея полной информации о клиенте, автоматизированная система не сможет выполнить такой запрос, не желая выписывать счет... ... Отсутствие это качества – одна из главных причин нечеловечности компьютерных систем... ... Но пользователь должен иметь возможность слегка "подправить" систему... ... Одно из больших преимуществ подстраиваемой системы – уменьшение числа ошибок... ... Допуская существование в системе временных маленьких ошибок и доверяя человеку в том, что он позже исправит их, можно избежать более серьезных ошибок... ... Однако большинство правил исходящих от компьютерных систем направлены на то, чтобы не допустить этих маленьких ошибок... ... Подстраиваемость – одно из немногих качеств человека, связанных с вежливостью, которое трудно встроить в компьютерную систему... ... Для того, чтобы быть подстраиваемой система должна сделать свой внутренний процесс доступным опытному пользователю... ... Подстройку системы можно расценить как мошенничество... ... В реальном мире на это закрывают глаза, потому что это специальный случай, и подразумевается что тот, кто "подстроил" систему приведет все счета в порядок до конца рабочего для или данной работы... ... Можно привести множество рациональных и логичных причин не использовать подстраиваемые системы... ... Люди использует подстраиваемость "ручных" систем во всех видах бизнеса чтобы удержаться на плаву... ... Несмотря на все препятствия, наполнение автоматизированных систем подобным качеством является жизненно важным вопросом... Подробнее: http://fit-media.com/post_1203349390.htmlФайлы vs базы данных.
Степень соответствия запросу: 23,67%
Фрагменты текста поста : ... Файлы vs базы данных... ... В последнее время все чаще нахожу в интернете статьи, которые расхваливают сайтовые движки, созданные без использования баз данных , т... ... сохраняющие данные в файлах... ... Непонятно почему, но народ истово верит в то, что именно такой подход (отказ от использования систем управления базами данных и хранение данных в файлах) дает гораздо большую производительность... ... В качестве примера «файлового подхода» я буду использовать движок этого блога ( Lasto-blog-B ), точнее работу его системы статистики... ... автор скрывает исходники, шифруя все в байт-код с помощью Zend-Guard), но общие выводы можно сделать просто проанализировав содержимое файлов, хранящих статистические данные... ... Пользователям скриптов других производителей, также использующих файлы в качестве хранилища данных этот пост также должен быть интересен... ... Нам гораздо важнее узнать, насколько оптимально использовать для этой работы файлы и действительно ли это быстрее, чем работа с базой данных... ... Особенность хранения данных Lasto-блогом такова, что статистика хранится в нескольких файлах: hits... ... db — данные о хитах (метка времени хита, IP-адрес источника, User-Agent клиента, хост источника, страница сайта к которой обратился клиент)... ... Странно, что Lasto не встроил какого-либо культурного просмотрщика и анализатора этих ценных данных... ... db — данные об обращениях RSS-ридеров... ... В данный момент нам эта инфа не интересна... ... В нем хранятся те данные, которые выводятся на странице статистики блога... ... Структура такова: allsein — данные о заходах с поисковиков по разным запросам хост | искомая фраза дата, количество заходов... ... agent — данные о броузерах и ботах user-agent броузера дата, количество заходов... ... pages — данные о посещенных страницах страница дата, количество заходов... ... rss_agent — данные о запросах от RSS-ридеров user-agent ридера дата, количество заходов... ... source — данные об источниках трафика URL страницы-источника дата, количество заходов... ... В первом «разделе» (данных о поисковиках и искомых фразах) разделителем данных является символ вертикальной черты... ... Случаи когда с данной поисковой машины еще не было посетителей и нужно создавать целую ветку массива рассматривать не будем... ... тут затронута обработка данных только из одного «раздела» статистики (а ведь скрипт еще должен скорректировать данные и в остальных), не описан блок, который проверяет доступность сайта для данного юзер-агента и хоста-источника (а он жрет времени тоже немало), не учтены потери на выделение/освобождение памяти и копирование целых веток массива, если автор решил (для упрощения программирования) отделить часть массива например так: Пример кода $as = $ar['allsein']... ... // выделяем данные о заходах с искалок в отдельный массив Все это уже не столь важно... ... Для данного примера также будем рассматривать работу только с одним «разделом» статистики — данных о поисковых запросах... ... Скрипт должен получить данные из базы о количестве хитов «за сегодня»... ... Для работы механизма БД, система должна будет загрузить целиком в память три файла индексов... ... :-) %%%базы данных, файловые движки, CMS, оптимизация скорости работы%%%... Подробнее: http://fit-media.com/post_1222679684.htmlПользовательский интерфейс
Степень соответствия запросу: 14,52%
Фрагменты текста поста : ... Сама номенклатура принятых в среде Windows интерфейсных элементов вызывает большие сомнения в том, что на ее базе можно создать действительно удобные интерфейсы... ... Хорошей аналогией может стать система управления автомобиля для профессионального шофера и шофера любителя... ... И, наконец, он не может просто плюнуть и перестать пользоваться неудобной системой, особенно если рядом нет удобной системы с аналогичными возможностями... ... В рамках нашей метафоры мы должны разработать систему интерфейсных элементов, своего рода алфавит взаимодействия, изучив который пользователь сможет легко делать то, что ему нужно... ... Примером хорошего концептуального дизайна интерфейса (помимо некоторых компьютерных игр) может служить система дорожных знаков... ... И, главное, эта система хорошо работает и не требует от своих пользователей высшего образования... ... Для искусственных сред (например, системы автомобильных дорог) такая модель с очевидностью верна... ... В первый же раз, когда пользователь натолкнется на различие, он испытает тяжелый психологический шок, который может привести к полному отторжению системы... ... Но дизайнеры этого интерфейса сочли эти элементы исключением из правил, хотя на их базе можно строить очень неплохие среды, конечно оставляя главные элементы "видимыми"... ... Основной проблемой в интерфейсе с пользователем является синхронизация точки внимания пользователя и точки активности системы... ... С одной стороны, пользователь должен уметь сказать системе, где и что он хочет изменить (обычно это делается щелчком мыши в нужном месте)... ... С другой стороны, система должна уметь привлечь внимание пользователя к месту наиболее актуальных изменений... ... Одна - "Конические деревья" - является визуализацией файловой системы компьютера и похожа на систему детских пирамидок, каждый уровень которой соответствует уровню файлового каталога... ... Вторая модель - " Стена в перспективе " - также отображает файловую систему, но вне ее иерархии, согласно двум каким-то параметрам, например частоте обращения к файлу и его размеру... ... Это - сигнал о том, что на действия пользователя система временно реагировать не будет... ... Это - сигнал о том, что система считает, что пользователь взаимодействует именно с этой кнопкой... ... Беда в том, что в оконном интерфейсе динамические визуальные сигналы носят характер гениальных находок и не образуют полную логичную систему... ... Создавая анимационный интерфейс, надо закладывать систему динамических визуальных сигналов с самого начала, поскольку они являются столь же естественной, сколь и необходимой частью анимационного интерфейса... ... Попытки потрясти мир могут привести к быстрой утомляемости пользователя и, как следствие, отторжению системы... ... Для дизайна конкретной программы требуется разработка собственной среды взаимодействия (направленной на реализацию конкретной функциональности) на базе общепринятой системы динамических визуальных сигналов... Подробнее: http://fit-media.com/post_1204019048.htmlИдея глобального контента
Степень соответствия запросу: 7,78%
Фрагменты текста поста : ... Идея глобального контента Как хранить данные в БД... ... По теме проектирования баз данных написано множество книг и статей, но все они содержат больше технической информации (описания систем индексации, поиска и связывания таблиц) и предлагают дробить всю информацию на множество таблиц, не забыв склеить все это в тугой узел с помощью связей (relations) и зависимостей... ... Идентификатор родительского элемента сайта ( parent_id - мы же строим иерархическую систему) Заголовок ( title ) Описание ( description ) Краткое содержание ( summary - используется в качестве анонса) Собственно текст старницы ( content ) Ключевые слова ( keywords ) Идентификатор автора ( user_id ) Дата создания ( created ) Дата последнего изменения ( modified ) Флаг опубликованности ( published ) Идентификатор логического раздела ( category ) Вроде ничего не забыл... ... Список полей: Уникальный идентификатор ( id ) Идентификатор статьи с в блоге, к которой относится данный комментарий ( parent_id ) Заголовок ( title ) Собственно текст ( content ) Идентификатор автора ( user_id ) Дата создания ( created ) Флаг промодерированности ( published ) Как видим, поля всё теже, что и для статичной страницы, отличие лишь в количестве... ... Проанализировав описанное выше, можно легко сделать вывод, что при проектировании CMF логично создать всего одну (большую) универсальную таблицу в базе данных для хранения практически любого вида контента... ... При этом для разработчиков модулей можно упростить многие рутинные операции, такие как, программирование ввода одних и тех же данных в разных модулях ( created , modified , title , decsription , keywords и т... ... Разработчику модуля нужно лишь сообщить системе, какие именно поля будет использовать его модуль и система сама сможет создать все необходимые формы для ввода/редактирования данных, с необходимой валидацией... ... Так же этот вариант хранения данных позволяет сделать "... ... - поскольку система имеет доступ ко всему контенту (и что важно - ей не нужно для получения контента обращаться к модулям, его создавшим... ... Сюда же стоит отнести и возможность отслеживания обновления контента без участия системы оповещения (событий) , а так же и решение многих проблем, связанных с кэшированием... ... %%%контент сайта, проектирование CMF, виды контента CMS, базы данных,  ... Подробнее: http://fit-media.com/post_1242742678.htmlМаксимум производительности
Степень соответствия запросу: 5,09%
Фрагменты текста поста : ... За последние 20 лет сложилась странная ситуация - в то время как мощность компьютеров увеличилась в несколько тысяч раз, скорость работы пользователя в некоторых случаях даже замедлилась из-за непомерно раздутых операционных систем и программ... ... (В 1978 году мне требовалось три с половиной минуты, чтобы загрузить систему и приложения с кассетного магнитофона на мой Apple II... ... Например, производительность работы человека увеличивается, если все необходимые данные находятся "... ... Один из методов решения этой проблемы - предварительная загрузка данных... ... Так как заранее неизвестно, какие именно данные потребуются, может возникнуть необходимость загрузки большого объема данных, которые никогда не будут использованы - вот вам и противоречие между производительностью человека и компьютера... ... Три операции, которые можно упростить Работая на компьютере, пользователи выполняют три основных операции: Принимают решения на основе информации, касающейся текущей задачи Собирают данные, необходимые для выполнения текущей задачи Манипулируют компьютером с помощью элементов управления Например, пользуясь автомобилем, пользователи вначале решают, куда они хотят ехать... ... Если рассмотреть каждый из этих шагов, уменьшая количество решений, которые необходимо принимать человеку, позволяя компьютеру самому собирать данные, и уменьшая количество манипуляций, необходимых для достижения цели, то производительность человека при работе с компьютером значительно увеличится... ... Такая система все еще будет поддерживать способность пользователя к принятию решений, в то же время устраняя ту часть операции, где необходимы манипуляции с механизмом... ... Уменьшение необходимости ввода данных Следующие методы могут увеличить производительность ввода данных, уменьшая количество необходимой для ввода информации: Автоматически заполняйте поля новой записи значениями предыдущей... ... Во время этого процесса у системы, скорее всего, будет достаточно времени для передачи информации в фоновом режиме... ... Как только большинство клиентов поймет, что новая система может сберечь их время и деньги, они попытаются уменьшить ее эффективность насколько это возможно, тем самым получая обратно свое время и деньги... ... Система жива"... ... Когда оставшееся время предугадать невозможно, покажите анимированный объект, который даст пользователям понять, что система не зависла... Подробнее: http://fit-media.com/post_1207048697.htmlAJAX — WEB 2.0 за 5 минут
Степень соответствия запросу: 3,93%
Фрагменты текста поста : ... наш контейнер, в который мы и будем загружать данные... ... Но эти данные кто-то должен предоставить... ... Ему в качестве параметра передается URL, с которого необходимо получить данные... ... Гораздо чаще встречается ситуация, когда нужно отправить серверу какие-то данные и получить ответ, который, затем необходимо всунуть в контейнер... ... Решается эта задача так же просто, но сперва давайте создадим серверный скрипт, который будет получать данные с нашей страницы и отправлять ответ... ... > Мы будем отправлять данные (введенное имя) в скрипт методом POST (а почему бы и нет... ... К тому же далеко не всегда полученные данные нужно тупо поместить в контейнер, гораздо чаще требуется провести еще кое-какую обработку полученной информации уже на стороне клиента... ... передает данные на сервер и получает ответ, но при этом он не изменяет содержимое DOM... ... Вместо этого он позволяет создать функцию-обработчик полученных данных... ... считывать данные из полей, этим займется метод serialize(), который сам соберет все данные из формы и упакует их в формат, понятный для метода post()... ... Вместо этого он принимает третьим параметром функцию, которая будет обрабатывать полученные с сервера данные... ... Теперь, если вам нужно передать на сервер больше данных, то просто добавьте в форму сколько угодно полей различных типов (радио-кнопки, текстовые области, пароли, чек-боксы)... ... фреймворк сам определит количество и типы полей и сам соберет из них данные для отправки... ... Он упрощает отправку данных на сервер до предела &mdash... ... вам вообще ничего не придется программировать :) Не станем здесь городить огород с реальной загрузкой файлов, просто выведем данные о загруженном файле... ... Первая будет вызвана перед началом отправки данных (в данном примере она покажет alert-окно с надписью 'start uploading'), а вторая &mdash... Подробнее: http://fit-media.com/post_1262093659.htmlПошлите серфера на три веселых цифры!
Степень соответствия запросу: 2,94%
Фрагменты текста поста : ... Сайт набит сотнями страниц (надо же чем-то его наполнить), спущен на воду (иначе зачем его строили), обвешан рекламными блоками (должен же он приносить прибыль) и скормлен роботам поисковых систем (ну а как еще привлечь народные массы для исследования сего бесценного ресурса... ... Фаза первая... ... Довольный робот индексирует все, до чего только может добраться и поисковая система получает полную коллекцию дубликатов страниц, на которые она (по одной ей известным причинам) начинает так же активно отправлять некоторое количество посетителей... ... Фаза вторая... ... Любой оптимизатор (да и просто более-менее грамотный админ сайта) знает о существовании систем активной раскрутки и продвижения сайтов типа 1ps... ... Это системы, позволяющие получать (за деньги или бесплатно) ссылки с одних сайтов на другие, тем самым повышая индексы цитирования, PR-ы и прочие показатели, сильно влияющие на позицию сайтов в серпах... ... Так вот, для оценки "качества" страницы, на которой такая система собирается поставить ссылку, она (система) кроме сканирования самого сайта-площадки делает еще и запросы в разные поисковики, с целью узнать, что, кем, когда и где проиндексировано... ... Естественно, получив с того же гугля список левых страниц из несуществующей папки download , система тоже внесет его в базу и добросовестно будет демонстрировать каждому посетителю... ... Поисковики, засекая новые страницы в серпах друг-друга, с удовольствием сканируют "новый" сегмент сайта и вносят его в свои базы... ... Фаза третья... ... Возможно процесс остановится уже после второй фазы, а может он будет развиваться как все в природе - по спирали: кто-нить как-нить создаст запрос к страницам еще глубже вложенным в иерархию папок и вызовет тем самым новый виток индексации "новых" псевдо-страниц... ... Но, в любом случае, поисковые системы, обнаружив даже по одному 100%-му клону всех страниц в пределах одного сайта, решат, что что-то здесь не ладно и очень похоже на попытку искусственного воздействия на результаты ранжирования и, как следствие, позицию в серпе... Подробнее: http://fit-media.com/post_1200930244.htmlГрамотный интерфейс: поля ввода
Степень соответствия запросу: 2,59%
Фрагменты текста поста : ... Грамотный интерфейс: поля ввода Очень часто в программах данные вводятся в формах, содержащих множество полей: поле фамилии, имени, адреса, номера паспорта, размера обуви... ... Гораздо лучше изначально создать такие условия ввода данных, чтобы подобные ошибки просто не возникали... ... Наиболее популярное на данный момент - разбить форму с десятком полей ввода на несколько форм, по два-три поля в каждом... ... Для интернета это оказывается удобным, но в оффлайновых программах, где вводимых данных гораздо больше, возникает масса проблем: необходимо предусмотреть в каждой следующей форме отображение введенных данных из предыдущих форм, чтобы пользователь мог видеть, что он уже ввел ранее... ... для изменения ранее введенных данных (например неверно введенной фамилии) необходимо сделать в формах навигацию "вперед - назад"... ... Определимся с задачей Нам нужно, чтобы интерфейс каким-то образом подсказывал пользователю, что именно от него (пользователя) требуется в данный момент... ... Суть состоит в том, что для ввода новой записи в базу и для редактирования уже введенной записи как правило используется одна и та же форма... ... Так вот, если во время редактирования придать фону формы какой-нибудь оттенок (например сделать ее слегка красноватой), то пользователь, занимающийся только вводом новых данных, сразу же заметит это изменение цвета и не введет по ошибке новые данные поверх старых... ... Ну и чтоб поставить жирную точку в вопросе путаницы при вводе и редактировании данных опишу еще одно простое, но очень полезное улучшение интерфейса... Подробнее: http://fit-media.com/post_1205142560.htmlЕсли не хочется кусать локти
Степень соответствия запросу: 2,08%
Фрагменты текста поста : ... Именно человеческая лень чаще всего служит причиной отсутствия резервной копии данных... ... Вот и возникла у меня мысль дать пару советов о том, как автоматизировать процесс резервирования важной информации, чтобы потом делать это абсолютно не напрягаясь, всего одним кликом мыши... ... Наилучший вариант — создание копии важных данные на сменных носителях... ... Если в вашей системе установлено несколько винчестеров и оригинальные (важные) данные расположены на первом из них, то копия всегда должна быть расположена на втором, третьем, четвертом винчестере, но только не на том, где лежит оригинал... ... В вашей системе всего один винчестер, но он разбит на несколько разделов (диски C:, D:, E:, F: и т... ... Если винчестер выйдет из строя, то информации вы все равно лишитесь, но такой вариант все же позволит вам в некоторых случаях спасти данные... ... Вариант №3 (самый ненадежный) В вашей системе всего один винчестер и на нем существует всего один раздел... ... В этом случае копия данных должна располагаться в отдельной папке... ... Пояснять тут нечего — если уничтожите оригинал, то сможете поднять данные из резервной папки, но любое более серьезное происшествие (вирус, форматирование, выход из строя носителя) практически 100%-но лишит вас и оригинала и копии... ... Для резервирования данных создана масса специальных программ-бэкаперов — пару минут общения с любым поисковиком и вы найдете ссылки на десятки примеров такого софта... ... Есть даже одна, встроенная прямо в Windows ( Пуск — Программы — Стандартные — Служебные — Архивация данных )... ... Итак, условимся, что оригинальные данные находятся в папках c:\texts\ , c:\private\passwords\ и d:\work\prikaz\... Подробнее: http://fit-media.com/post_1203529769.htmlВсе ли CMS одинаково полезны?
Степень соответствия запросу: 1,55%
Фрагменты текста поста : ... Вот тут на первое место и выходят всякие CMS (Content Management System - системы управления содержимым сайта)... ... знать всякие сетевые заморочки типа HTML или CSS для работы с этой CMS совсем не нужно - система достаточно грамотная, чтобы понять, что от нее хочет очередной сайто-строитель... ... Все это означает, что поисковые системы конечно же найдут и проиндексируют сайт на таком движке, но вот восторга, переходящего в эйфорию, они от этой индексации не испытают... ... Процесс "законного отнимания банковских билетов" предусматривает пропускание через свой сайт десятков тысяч посетителей за сутки и каждый из них должен быть "обслужен" максимально быстро, ибо ленивы и капризны оне... ... Четвертый недостаток - использование баз данных... ... И вот, что я хочу от него добиться: Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц) Минимальные размеры как движка, так и хранимых на сервере данных... ... Оптимизация всех операций, кэширование, индексация данных для ускоренного доступа... ... Отсутствие необходимости использования баз данных (MySQL)... ... Все данные будут храниться в обычных файлах на сервере... ... Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц) В завершение скажу, что работа по созданию этого чуда уже начата... Подробнее: http://fit-media.com/post_1200405197.html
