Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 37 [показано 10]
Файлы vs базы данных.
Степень соответствия запросу: 32,95%
Фрагменты текста поста : ... Файлы vs базы данных... ... В последнее время все чаще нахожу в интернете статьи, которые расхваливают сайтовые движки, созданные без использования баз данных , т... ... сохраняющие данные в файлах... ... Непонятно почему, но народ истово верит в то, что именно такой подход (отказ от использования систем управления базами данных и хранение данных в файлах) дает гораздо большую производительность... ... автор скрывает исходники, шифруя все в байт-код с помощью Zend-Guard), но общие выводы можно сделать просто проанализировав содержимое файлов, хранящих статистические данные... ... Пользователям скриптов других производителей, также использующих файлы в качестве хранилища данных этот пост также должен быть интересен... ... Итак, последовательность действий модуля сбора статистики Lasto-блога примерно такова: при обращении серфера к любой странице сайта запускается один и тот же скрипт, который должен собирать статистическую информацию: кто пришел (серфер или бот), откуда он пришел (сайт-источник), куда он пришел (страница нашего сайта) и т... ... Вся эта информация сохраняется в файл и позже, на ее основе, генерируются графики посещаемости по дням, «хит-парад» страниц сайта, сайтов-источников трафика и используемых для просмотра броузеров и прочая мега-полезная отчетность... ... Принципы работы достаточно ясны и понятны, вся информация легко-доступна для любого скрипта и интереса не вызывает... ... Нам гораздо важнее узнать, насколько оптимально использовать для этой работы файлы и действительно ли это быстрее, чем работа с базой данных... ... Особенность хранения данных Lasto-блогом такова, что статистика хранится в нескольких файлах: hits... ... db — данные о хитах (метка времени хита, IP-адрес источника, User-Agent клиента, хост источника, страница сайта к которой обратился клиент)... ... Странно, что Lasto не встроил какого-либо культурного просмотрщика и анализатора этих ценных данных... ... db — данные об обращениях RSS-ридеров... ... В данный момент нам эта инфа не интересна... ... В нем хранятся те данные, которые выводятся на странице статистики блога... ... Структура такова: allsein — данные о заходах с поисковиков по разным запросам хост | искомая фраза дата, количество заходов... ... agent — данные о броузерах и ботах user-agent броузера дата, количество заходов... ... pages — данные о посещенных страницах страница дата, количество заходов... ... rss_agent — данные о запросах от RSS-ридеров user-agent ридера дата, количество заходов... ... source — данные об источниках трафика URL страницы-источника дата, количество заходов... ... В первом «разделе» (данных о поисковиках и искомых фразах) разделителем данных является символ вертикальной черты... ... При обращении серфера к странице, скрипт собирает всю необходимую информацию (имя страницы, URL страницы-источника, user-agent, дата обращения и т... ... Случаи когда с данной поисковой машины еще не было посетителей и нужно создавать целую ветку массива рассматривать не будем... ... тут затронута обработка данных только из одного «раздела» статистики (а ведь скрипт еще должен скорректировать данные и в остальных), не описан блок, который проверяет доступность сайта для данного юзер-агента и хоста-источника (а он жрет времени тоже немало), не учтены потери на выделение/освобождение памяти и копирование целых веток массива, если автор решил (для упрощения программирования) отделить часть массива например так: Пример кода $as = $ar['allsein']... ... // выделяем данные о заходах с искалок в отдельный массив Все это уже не столь важно... ... Для данного примера также будем рассматривать работу только с одним «разделом» статистики — данных о поисковых запросах... ... Сбор информации о серфере... ... Скрипт должен получить данные из базы о количестве хитов «за сегодня»... ... :-) %%%базы данных, файловые движки, CMS, оптимизация скорости работы%%%... Подробнее: http://fit-media.com/post_1222679684.htmlМаксимум производительности
Степень соответствия запросу: 22,79%
Фрагменты текста поста : ... Например, производительность работы человека увеличивается, если все необходимые данные находятся "... ... Один из методов решения этой проблемы - предварительная загрузка данных... ... Так как заранее неизвестно, какие именно данные потребуются, может возникнуть необходимость загрузки большого объема данных, которые никогда не будут использованы - вот вам и противоречие между производительностью человека и компьютера... ... Три операции, которые можно упростить Работая на компьютере, пользователи выполняют три основных операции: Принимают решения на основе информации, касающейся текущей задачи Собирают данные, необходимые для выполнения текущей задачи Манипулируют компьютером с помощью элементов управления Например, пользуясь автомобилем, пользователи вначале решают, куда они хотят ехать... ... Затем они находят информацию, необходимую для формирования маршрута, например карту дорог... ... Неотложные ситуации могут служить причиной для изменения маршрута, запроса новой информации и т... ... Само колесо управления содержит информацию, необходимую для принятия данного решения... ... Если рассмотреть каждый из этих шагов, уменьшая количество решений, которые необходимо принимать человеку, позволяя компьютеру самому собирать данные, и уменьшая количество манипуляций, необходимых для достижения цели, то производительность человека при работе с компьютером значительно увеличится... ... Уменьшение необходимости ввода данных Следующие методы могут увеличить производительность ввода данных, уменьшая количество необходимой для ввода информации: Автоматически заполняйте поля новой записи значениями предыдущей... ... Минимизируйте, либо полностью устраните необходимость ввода информации... ... Можно ли получить информацию на основе логического вывода... ... Действительно ли данная информация необходима для выполнения этой задачи... ... Исследуйте другие способы получения информации... ... Первый метод наиболее эффективен, когда ранее введенная информация может быть использована еще раз... ... Этот метод зависит от доступности необходимой информации... ... есть данная информация вообще или нет... ... Во время этого процесса у системы, скорее всего, будет достаточно времени для передачи информации в фоновом режиме... ... Второй подход - минимизация ввода информации - может быть довольно сложным для применения по довольно неожиданной причине... ... Они делают это не потому, что действительно хотят работать с неэффективной системой, просто они вдруг понимают, что теперь могут позволить себе потратить время на сбор дополнительной, вторичной информации... ... Третий подход - получение информации другими способами - требует значительных усилий... ... Например, можно вводить информацию с бумажных форм в компьютер, используя сканер и программу оптического распознавания текста... ... Однако в зависимости от чистоты и избыточности поступающей информации, такой способ может потребовать больше ручной работы, которую он и призван уменьшить... ... Быстро и точно предоставляйте пользователю информацию, необходимую для принятия решений... ... Избавляйтесь от ненужной информации... ... удостовериться, что пользователю предоставлена вся необходимая информация для принятия решения... ... Четвертый шаг , удаление избыточной информации, очень важен... Подробнее: http://fit-media.com/post_1207048697.html14 принципов создания вежливых программ
Степень соответствия запросу: 13,63%
Фрагменты текста поста : ... Если программа скупа на информацию, скрывает результаты своей работу, заставляет пользователя искать где находятся простейшие функции, и винит его в своих собственных неудачах, то пользователю она точно не понравится... ... Торговцы "Гербалайфом" одеты в красивые костюмы, широко улыбаются и полны впечатляющей информации, но разве они нам нравятся... ... Программист считает реальный мир миром информации, так что как только программе требуется какая-либо информация, она просто требует ее от пользователя... ... Но бездумная программа забывает эту информацию, считая что всегда может затребовать ее снова, если потребуется... ... Компьютеры и так лучше всего подходят для хранения информации, так что забывать ее по крайней мере невежливо... ... Если я спрашиваю у служащего аэропорта, через какой выход пройти на рейс 729, я ожидаю, что он не только ответит на мой вопрос, но и даст мне важную информацию о том, что вылет рейса 729 задерживается на 20 минут... ... Они лишь кратко отвечают на мои вопросы, не пытаясь проявить предусмотрительность в отношении другой информации, даже если она напрямую связана с моими целями... ... Информация об этом легко доступна, однако программа не заботится о моих очевидных нуждах... ... Я не хочу слышать свист модема или наблюдать информацию о скорости передачи данных, так же как я не хочу слышать о разводе бармена, сломанном автомобиле парикмахера или алиментах доктора... ... Когда я ищу информацию в Интернет через поисковую машину, я не могу быть уверен, что не наткнусь на неработающую ссылку... ... Программы постоянно предлагают мне варианты выбора, которые, по разным причинам, в данный момент недоступны... ... Когда система ручной обработки информации переносится на компьютеры, что-нибудь всегда теряется... ... Чаще всего система компьютеризируется для увеличения объемов обрабатываемой информации, а не для изменения свой функциональности... ... Когда поступает какой-нибудь заказ с неполной информацией, он может обработать его и вернуться к нему позже, чтобы восполнить информацию... ... Например, автоматизированной системе требуется информация и о клиенте и о его заказе для того, чтобы выписать счет... ... Тогда как служащий может выписать счет не имея полной информации о клиенте, автоматизированная система не сможет выполнить такой запрос, не желая выписывать счет... ... Я называю эту способность человека действовать вне существующей схемы обработки информации до того, как все необходимы реквизиты будут доступны подстраиваемостью... ... В реальном мире на это закрывают глаза, потому что это специальный случай, и подразумевается что тот, кто "подстроил" систему приведет все счета в порядок до конца рабочего для или данной работы... ... Для предотвращения мошенничества можно воспользоваться возможностями компьютера следить за всеми действиями пользователя и показывать эту информацию специальному наблюдателю... ... Их программы заставляют пользователя вводить всю возможную информацию, а сами и пальцем не пошевелят... ... Мы можем сделать программы значительно более вежливыми, если они будут работать для того, чтобы предоставить пользователю всю возможную информацию без значительных усилий с его стороны... Подробнее: http://fit-media.com/post_1203349390.htmlЕсли не хочется кусать локти
Степень соответствия запросу: 9,23%
Фрагменты текста поста : ... Я говорю о потере информации... ... Причиной потери информации может служить не только выход компьютера из строя... ... Вопрос резервного копирования информации регулярно поднимается практически во всех форумах и идей по этому поводу высказывается не мало... ... Все мы прекрасно понимаем, что это нужно и полезно, но все равно, в силу собственной лени, о необходимости такого копирования вспоминаем только тогда, когда бесценная информация безвозвратно потеряна... ... Именно человеческая лень чаще всего служит причиной отсутствия резервной копии данных... ... Вот и возникла у меня мысль дать пару советов о том, как автоматизировать процесс резервирования важной информации, чтобы потом делать это абсолютно не напрягаясь, всего одним кликом мыши... ... Наилучший вариант — создание копии важных данные на сменных носителях... ... Тем более, что ничего объяснять тут не нужно — просто время от времени копируйте всю важную информацию на диски с помощью своей любимой записывалки дисков и все... ... Даже если ваш компьютер взорвется и разлетится на мелкие кусочки, то с флэшкой, лежащей в выдвижном ящике вашего стола, все равно ничего не случится и информация останется целой... ... Если в вашей системе установлено несколько винчестеров и оригинальные (важные) данные расположены на первом из них, то копия всегда должна быть расположена на втором, третьем, четвертом винчестере, но только не на том, где лежит оригинал... ... Если винчестер выйдет из строя, то информации вы все равно лишитесь, но такой вариант все же позволит вам в некоторых случаях спасти данные... ... В этом случае копия данных должна располагаться в отдельной папке... ... Пояснять тут нечего — если уничтожите оригинал, то сможете поднять данные из резервной папки, но любое более серьезное происшествие (вирус, форматирование, выход из строя носителя) практически 100%-но лишит вас и оригинала и копии... ... Для резервирования данных создана масса специальных программ-бэкаперов — пару минут общения с любым поисковиком и вы найдете ссылки на десятки примеров такого софта... ... Есть даже одна, встроенная прямо в Windows ( Пуск — Программы — Стандартные — Служебные — Архивация данных )... ... требуется время на сжатие информации Чтобы не забивать вам и без того перегруженный информацией мозг описанием всех возможных команд и режимов я просто дам готовые команды, которые (немного измененные) вы можете начать использовать хоть прямо сейчас... ... Итак, условимся, что оригинальные данные находятся в папках c:\texts\ , c:\private\passwords\ и d:\work\prikaz\... ... rar" "c:\Мои Документы" Надеюсь, что информация из этой статьи позволит вам уберечься от возможных проблем потери информации и окажется полезной при создании резервных копий... Подробнее: http://fit-media.com/post_1203529769.htmlAJAX — WEB 2.0 за 5 минут
Степень соответствия запросу: 6,71%
Фрагменты текста поста : ... И в этой паре килобайт текста я вам дам всю необходимую информацию, чтобы начать использовать AJAX, даже если ваш сайт не имеет движка и состоит только из статичных HTML-страниц... ... наш контейнер, в который мы и будем загружать данные... ... Но эти данные кто-то должен предоставить... ... Ему в качестве параметра передается URL, с которого необходимо получить данные... ... Гораздо чаще встречается ситуация, когда нужно отправить серверу какие-то данные и получить ответ, который, затем необходимо всунуть в контейнер... ... Решается эта задача так же просто, но сперва давайте создадим серверный скрипт, который будет получать данные с нашей страницы и отправлять ответ... ... > Мы будем отправлять данные (введенное имя) в скрипт методом POST (а почему бы и нет... ... В принципе этой информации уже достаточно, чтобы соорудить сколько угодно сложное взаимодействие с пользователем... ... К тому же далеко не всегда полученные данные нужно тупо поместить в контейнер, гораздо чаще требуется провести еще кое-какую обработку полученной информации уже на стороне клиента... ... передает данные на сервер и получает ответ, но при этом он не изменяет содержимое DOM... ... Вместо этого он позволяет создать функцию-обработчик полученных данных... ... считывать данные из полей, этим займется метод serialize(), который сам соберет все данные из формы и упакует их в формат, понятный для метода post()... ... Вместо этого он принимает третьим параметром функцию, которая будет обрабатывать полученные с сервера данные... ... Теперь, если вам нужно передать на сервер больше данных, то просто добавьте в форму сколько угодно полей различных типов (радио-кнопки, текстовые области, пароли, чек-боксы)... ... фреймворк сам определит количество и типы полей и сам соберет из них данные для отправки... ... Он упрощает отправку данных на сервер до предела &mdash... ... вам вообще ничего не придется программировать :) Не станем здесь городить огород с реальной загрузкой файлов, просто выведем данные о загруженном файле... ... Первая будет вызвана перед началом отправки данных (в данном примере она покажет alert-окно с надписью 'start uploading'), а вторая &mdash... Подробнее: http://fit-media.com/post_1262093659.htmlИдея глобального контента
Степень соответствия запросу: 5,75%
Фрагменты текста поста : ... Идея глобального контента Как хранить данные в БД... ... По теме проектирования баз данных написано множество книг и статей, но все они содержат больше технической информации (описания систем индексации, поиска и связывания таблиц) и предлагают дробить всю информацию на множество таблиц, не забыв склеить все это в тугой узел с помощью связей (relations) и зависимостей... ... Так ли сильно отличаются наборы хранимой информации для разных видов контента... ... Давайте рассмотрим, какую информацию хранят в БД "... ... Это страница, содержащая некоторую полезную для посетителя информацию, которая очень редко (или вообще никогда) не изменяется... ... В плане хранения информации, отличия от статичной страницы минимальны... ... Список полей: Уникальный идентификатор ( id ) Идентификатор статьи с в блоге, к которой относится данный комментарий ( parent_id ) Заголовок ( title ) Собственно текст ( content ) Идентификатор автора ( user_id ) Дата создания ( created ) Флаг промодерированности ( published ) Как видим, поля всё теже, что и для статичной страницы, отличие лишь в количестве... ... Проанализировав описанное выше, можно легко сделать вывод, что при проектировании CMF логично создать всего одну (большую) универсальную таблицу в базе данных для хранения практически любого вида контента... ... При этом для разработчиков модулей можно упростить многие рутинные операции, такие как, программирование ввода одних и тех же данных в разных модулях ( created , modified , title , decsription , keywords и т... ... Разработчику модуля нужно лишь сообщить системе, какие именно поля будет использовать его модуль и система сама сможет создать все необходимые формы для ввода/редактирования данных, с необходимой валидацией... ... Так же этот вариант хранения данных позволяет сделать "... ... %%%контент сайта, проектирование CMF, виды контента CMS, базы данных,  ... Подробнее: http://fit-media.com/post_1242742678.htmlГрамотный интерфейс: поля ввода
Степень соответствия запросу: 3,19%
Фрагменты текста поста : ... Грамотный интерфейс: поля ввода Очень часто в программах данные вводятся в формах, содержащих множество полей: поле фамилии, имени, адреса, номера паспорта, размера обуви... ... Гораздо лучше изначально создать такие условия ввода данных, чтобы подобные ошибки просто не возникали... ... Наиболее популярное на данный момент - разбить форму с десятком полей ввода на несколько форм, по два-три поля в каждом... ... Для интернета это оказывается удобным, но в оффлайновых программах, где вводимых данных гораздо больше, возникает масса проблем: необходимо предусмотреть в каждой следующей форме отображение введенных данных из предыдущих форм, чтобы пользователь мог видеть, что он уже ввел ранее... ... для изменения ранее введенных данных (например неверно введенной фамилии) необходимо сделать в формах навигацию "вперед - назад"... ... Определимся с задачей Нам нужно, чтобы интерфейс каким-то образом подсказывал пользователю, что именно от него (пользователя) требуется в данный момент... ... Суть состоит в том, что для ввода новой записи в базу и для редактирования уже введенной записи как правило используется одна и та же форма... ... Так вот, если во время редактирования придать фону формы какой-нибудь оттенок (например сделать ее слегка красноватой), то пользователь, занимающийся только вводом новых данных, сразу же заметит это изменение цвета и не введет по ошибке новые данные поверх старых... ... Ну и чтоб поставить жирную точку в вопросе путаницы при вводе и редактировании данных опишу еще одно простое, но очень полезное улучшение интерфейса... Подробнее: http://fit-media.com/post_1205142560.htmlКак создать хороший интерфейс пользователя?
Степень соответствия запросу: 2,62%
Фрагменты текста поста : ... Рекомендую вам уделить одинаковое внимание следующим пунктам: Пользователи: их опыт работы с компьютером, мотивы, размер/важность групп пользователей, образцы (типовые ситуации) использования Задачи: что послужило причиной создания проекта, этапы создания проекта, какие результаты должны быть получены, какая информация необходима и когда Технология разработки и платформа , на которой будут работать пользователи Среда , в которой будет создаваться и использоваться проект (физическая, рыночная, организационная и культурная) Используйте эту информацию для определения и расстановки приоритетов... ... Много дискуссий без значительного прогресса Вы не оправдаете ожиданий спонсоров вашего проекта (людей у которых есть причины забоится о доходе) Начальная фаза разработки: концептуальный дизайн В этой фазе разработки вы должны решить какой интерфейс лучше всего будет подходить для достижения ваших целей - текстовый, графический или мультимедиа... ... Основывайте ваш выбор на той собранной вами информации о пользователях и ситуациях, в которых они работают, а не просто делайте вашу программу похожей на среду разработки... ... Для выполнения начальной фазы разработки погрузитесь целиком в задачи пользователей и создайте бумажный прототип навигационной модели... ... Если вы пропустите раннюю фазу разработки, ваш интерфейс может страдать от следующих проблем: Несоответствие группам пользователей Сложность в обучении Неадекватная степень гибкости Нецелостное или непредсказуемое использование разных типов окон Разработка на основе задач пользователя Итак, ваши окна пока не имеют содержания... ... Исходная программа, которую я оценивала, имела ориентированный на расписание подход, встроенный в базу данных, так что учителя могли планировать уроки только назначив их дату и время... ... Пользователь должен сразу распознавать какие данные можно редактировать, какие нет... ... вторая половина - получение обратной связи, и применение полученной информации... ... Тестирование на пользователях даст вам наиболее верную информацию... ... Думайте о тестировании как о способе получить новую информацию... Подробнее: http://fit-media.com/post_1205661604.htmlВсе ли CMS одинаково полезны?
Степень соответствия запросу: 1,77%
Фрагменты текста поста : ... И потому, каждый, мало-мальски уважающий себя предприниматель, буквально считает своим долгом разместить в сети информацию о себе любимом и своем не менее любимом бизнесе... ... А если учесть, что рядовому мани-мейкеру нужно иметь пару десятков сателлитов или доров - относительно небольших сайтов, полный размер контента которых не переваливает за 1-2 мегабайта, то становится понятно, что разворачивать такого "монстра" ради пары мегабайт реальной информации совсем не хочется... ... Четвертый недостаток - использование баз данных... ... Например, блокирование частичного или полного выкачивания сайта с помощью разных даунлоадеров, противодействие попыткам автоматического воровства информации другими CMS'ами и т... ... И вот, что я хочу от него добиться: Максимальная оптимизация под поисковые системы ("управляемое" расположение контента в странице, облегченный дизайн, генерация псевдо-статических страниц) Минимальные размеры как движка, так и хранимых на сервере данных... ... Оптимизация всех операций, кэширование, индексация данных для ускоренного доступа... ... Отсутствие необходимости использования баз данных (MySQL)... ... Все данные будут храниться в обычных файлах на сервере... ... Вся необходимая информация будет браться прямо с сервера хоста... Подробнее: http://fit-media.com/post_1200405197.htmlMySQL: MyISAM хотят заменить на новый движок Maria
Степень соответствия запросу: 1,36%
Фрагменты текста поста : ... MySQL: MyISAM хотят заменить на новый движок Maria Инициативная группа MySQL AB Maria, состоящая из шести человек и возглавляемая Michael "Monty" Widenius (создатель MySQL и MyISAM), выпустила тестовую версию нового движка хранения данных Maria... ... Движок Maria - это расширенная версия MyISAM, которая поддерживает весь основной функционал MyISAM и в дополнение к этому предлагает: поддержку восстановления данных после сбоев (data auto-recovery, crash safe), полное логирование (включая операции CREATE, DROP, RENAME и TRUNCATE) и новый формат строк PAGE... ... X Основные замечания касательно сравнения Maria и MyISAM Преимущества перед MyISAM Восстановление данных и индексов после сбоев Откат, после сбоя, в предыдущее состояние или к состоянию после последней команды LOCK TABLES Полное логирование операций, включая: CREATE/DROP/RENAME/TRUNCATE TABLES, LOAD DATA INFILE, SELECT... ... INSERT и INSERT (множество строк), ALTER TABLE LOAD INDEX может пропускать неиспользуемые индексные блоки Новый блочный формат строк, в котором данные хранятся ввиде страниц При использовании блочного формата строк (выбираемого теперь по умолчанию) строковые данные могут кешироваться Блочные тесты большинства элементов Поддержка как отказоустойчивых (crash safe, транзакциональных) так и нетранзакциональных таблиц... ... ) TRANSACTIONAL=0|1 PAGE используется только для тказоустойчивого/транзакционального строкового формата PAGE формат должен дать заметное увеличение скорости на системах с плохим кешированием данных... ... Не поддерживается INSERT DELAYED Не поддерживается кеширование составных ключей Устранение недостатков до следующих релизов Хранение очень малых строк Не поддерживаются MERGE таблицы Различия, которые вероятно не будут устранены Страницы данных в блоковом формате увеличивают размеры: 10 байт на страницу и 5 байт на строки... ... Транзакции и поддержка конкурирующих записей приведут к увеличению: 7 байт на новые строки, 14 байт для удаленных строк Отсутствие внешнего блокирования (MyISAM имеет внешнее блокирование, но оно редко используется) Использование одинакового размера страниц для индекса и данных... ... MyISAM поддерживает различные размеры страниц для индексов Индексный номер требует один экстра байт на индексную страницу Не поддерживается внутренний MySQL RAID (выключен и в MyISAM) Минимальный размер файла данных формата PAGE 16К (со страницей на 8K) Обзор Maria:... Подробнее: http://fit-media.com/post_1202730586.html
