• Главная
  • Оглавление
  • Обратная связь
  • Лента RSS
  • Правила
Что здесь уже нашли

Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)




Найдено страниц: 42 [показано 10]

  1. Файлы vs базы данных.

    Степень соответствия запросу: 55,88%
    Фрагменты текста поста :
    ... Файлы vs базы данных... ... сохраняющие данные в файлах... ... Непонятно почему, но народ истово верит в то, что именно такой подход (отказ от использования систем управления базами данных и хранение данных в файлах) дает гораздо большую производительность... ... Давайте рассмотрим процессы, проистекающие на сервере при работе КМС "на файлах" и сравним их с аналогичными процессами при использовании СУБД... ... Пользователям скриптов других производителей, также использующих файлы в качестве хранилища данных этот пост также должен быть интересен... ... Вся эта информация сохраняется в файл и позже, на ее основе, генерируются графики посещаемости по дням, «хит-парад» страниц сайта, сайтов-источников трафика и используемых для просмотра броузеров и прочая мега-полезная отчетность... ... Нам гораздо важнее узнать, насколько оптимально использовать для этой работы файлы и действительно ли это быстрее, чем работа с базой данных... ... Особенность хранения данных Lasto-блогом такова, что статистика хранится в нескольких файлах: hits... ... Кстати, анализируя этот файл можно увидеть, какие страницы сайта проиндексированы какими поисковыми системами (были посещены поисковыми ботами) и когда это произошло... ... db — а вот на этот файл стоит обратить особое внимание... ... Скрипт считывает в память ВЕСЬ файл статистики, не взирая на размер ( если посещаемость высокая или статистика собирается за большой срок, то это могут быть десятки или даже сотни мегабайт )... ... Итак, скрипт загружает текстовый файл и преобразует его в массив... ... Серилизация (склейка элементов массива в строку) и перезапись (опять же) ВСЕГО файла статистики... ... Главное то, что ПРИ ЛЮБОМ ХИТЕ (даже переходе серфера с одной страницы сайта на другую) происходят ВСЕ описанные операции — чтение, разбор, поиск, склейка, запись и выполняются они над ВСЕМ содержимым файла статистики... ... За счет кэширования вы выиграете часть времени на чтении/сохранении файла статистики, но как быть с массивом... ... К тому же не стоит забывать, что пока одна копия запущенного скрипта копается в вашем (пусть и прокэшированном) файле, все другие будут тихо и мирно курить в сторонке... ... Другими словами, пока идет обработка одного посетителя, все остальные будут ждать ибо для них доступ к файлу статистики окажется заблокированным... ... При нормальном (читай « грамотном ») подходе тут будут использованы аж три таблицы: в первой будут храниться хосты поисковиков (по одному на запись), во второй — запросы с хостов (каждый запрос в отдельной записи), ну и в третьей — собственно количество посетителей по дням для каждой из искалок по каждому из запросов... ... каждой записи из первой таблицы соответствуют несколько записей из второй, каждой из которых соответствуют несколько записей из третьей... ... :-) Структура, например, такая: Структура таблиц Таблица se_hosts -------------------- ID1 — уникальный числовой номер (используется для связи таблиц) Host — имя хоста поисковика Таблица se_query --------------------- ID2 — уникальный числовой номер (используется для связи таблиц) SH_ID — уникальный номер для ссылки на первую таблицу Query — текст искомой фразы Таблица se_hits ------------------- Q_ID — уникальный номер для ссылки на вторую таблицу Date — кво-дней с 1 января 2000 года Hits — количество хитов за этот день Естественно первая и третья таблицы будут иметь индексы по первым двум полям, а вторая — по всем... ... Индексный файл содержит копию проиндексированного поля (или полей) из таблицы БД, но в отсортированном виде... ... Таким образом, одной операцией сравнения мы сразу определяем в какой из половин таблицы находится нужная нам запись, т... ... Затем оставшийся диапазон (половина таблицы) снова делится пополам и все повторяется до тех пор, пока мы не найдем нужную запись, либо убедимся, что ее нет... ... Благодаря тому, что мы проиндексировали поле с именем хоста, мы находим нужную запись в 15 раз быстрее, чем в массиве (буду брать наихудший вариант)... ... Для работы механизма БД, система должна будет загрузить целиком в память три файла индексов... ... размер записи в них фиксированный... ... для перехода к нужной записи достаточно просто размер заголовка файла добавить к произведению размера записи в байтах на номер записи и получаем точное смещение от начала файла... ... После того как мы нашли с помощью индексов нужную запись, ее требуется загрузить в память... ... Нам нужно загрузить ТОЛЬКО ОДНУ ЗАПИСЬ , а вовсе не всю таблицу... ... В нашем случае размер записи (для третьей таблицы) составляет 12 байт , ведь там только три поля — Q_ID , Date и Hits , каждое из которых представляет собой 32-битное число и занимает 4 байта... ... Запись считали, увеличили на единицу и снова записали НА ТОЖЕ МЕСТО в файле таблицы... ... Поскольку записи в нашей третьей таблице (в данном случае) также будут иметь фиксированную длину, то поиск нужной внутри файла также сведется к одному сложению и одному умножению, а уж прочесть и снова записать на тоже место 12 байт — милисекундное дело (даже с учетом автоматической коррекции индексного файла)... ... Да еще про кэширование вспомним :-) Кстати, если ваш сайт достаточно посещаем, то файл статистики будет расти как на дрожжах и каждое обращение к скрипту будет вызывать чтение/парсинг/поиск/сохранение всех этих десятков мегабайт, а при использовании БД при любом количестве посетителей нам все так же будет нужно читать всего несколько сотен байт (три записи из таблиц), а записать - только 12 байт... ... Ну и конечно не забудьте о том, что поиск можно производить не в каждой таблице по отдельности, а сразу во всех, одной командой: Пример запроса SELECT Hits FROM se_hosts, se_query, se_hits WHERE ID1 = SH_ID AND ID2 = Q_ID AND Date = 3085 что еще даст еще больший выигрыш, т... ... записи из первых двух таблиц не нужно будет передавать в скрипт, а мотор СУБД обработает их сам и очень-очень быстро... Подробнее: http://fit-media.com/post_1222679684.html


  2. AJAX — WEB 2.0 за 5 минут

    Степень соответствия запросу: 10,59%
    Фрагменты текста поста :
    ... Поскольку вся библиотекуа представляет собой всего один обычный файл с java-скриптом, то и подключается он стандартным HTML-тэгом: Пример кода <... ... Поэтому сделаем файл, который будет посылать некий ответ на наш запрос... ... Для этого создадим HTML-файл, например, такого банального содержания: Содержимое файла text... ... } Броузер понимает запись #my_container как некую ссылку на элемент с id="... ... запись $('#my_container') указывает фреймворку, что мы собираемся работать с элементом DOM, имеющим id="... ... после выполнения функции mytest() внутри контейнера будет помещено содержимое нашего файла (в данном примере это будет надпись "... ... /a> Итак, полный код примера: Полный код файла index... ... /html> Сохраните файлы index... ... Файл будет зваться name... ... Код: Файл name... ... вы не сможете с его помощью закачать на сервер файлы... ... вам вообще ничего не придется программировать :) Не станем здесь городить огород с реальной загрузкой файлов, просто выведем данные о загруженном файле... ... Код скрипта (файл file... ... php): Файл file... Подробнее: http://fit-media.com/post_1262093659.html


  3. DropBox - убийца фалообменников

    Степень соответствия запросу: 9,14%
    Фрагменты текста поста :
    ... Это значит, что стоит вам удалить какой-то файл из этой папки, как он тут же будет удален с сервера... ... для удаления файла с сервера достаточно просто удалить этот файл из своей папки... ... , а так же валяется непонятный RTF файл, который можете сразу же стереть &mdash... ... Поэтому если вы хотите, чтобы кто-то кроме вас мог скачать файлы из вашего аккаунта, то вы должны разместить эти файлы внутри одной из этих папок... ... Все остальные папки и файлы, которые вы можете создать и которые НЕ будут находиться внутри папок Public или Photos никогда не будут доступны другим пользователям (за одним маленьким исключением, которое называется "... ... и сотрите все, что в ней есть (файл RTF с описанием работы и пример готового альбома)... ... и скопируйте в нее несколько фотографий: Если файлы большие или ваше соединение с интернет не очень быстрое, то вы заметите, что у каждой иконки сперва появляется синий значек с двумя стрелочками, который потом заменяется на зеленый с галочкой... ... файл или папка еще закачивается на сервер, зеленый  ... ... файл или папка успешно закачаны... ... в том, что в ней нельзя расшарить (сделать публично-доступным) один какой-то файл, только целиком альбом (вложенную папку)... ... Если же вам нужно раздавать файлы по одному, то вам нужно воспользоваться папкой "... ... в ней можно получить паблик-ссылку на любой вложенный файл, но нельзя получить такую ссылку на папку... ... раздавать файлы можно только по одному... ... Так что смело копируйте нужные файлы в папку Public , получайте на них паблик-ссылки и заваливайте этим спамом все известные вам форумы... ... Еще раз напомню, что если вы удалите как-нить файлы из ваших папок Public или Photos (или любых других внутри папки My Dropbox ), то эти файлы тут же будут удалены с сервера... ... если какой-любо из закачанных файлов изменился, то перезалита будет только изменившаяся часть, а не весь файл... Подробнее: http://fit-media.com/post_1256945370.html


  4. Если не хочется кусать локти

    Степень соответствия запросу: 8,77%
    Фрагменты текста поста :
    ... Например при случайном форматировании раздела с оригиналом или уничтожении оригинала в результате вирусной атаки... ... Самый простой способ создания резервной копии — тупо откопировать важные файлы (и папки) в место резервного хранения... ... * f:\arhiv\ скопирует все файлы из папки texts диска C: на диск F: в папку arhiv... ... * f:\arhiv\ /Y /S Теперь она скопирует все содержимое папки texts диска C: , включая все вложенные папки и все файлы из них... ... В реальной жизни чаще нужно копировать не все подряд, а файлы определенных типов... ... Дело в том, что эти команды просто тупо копируют файлы из одного места в другое... ... При этом если в папке-приемнике уже есть файл с тем же именем, что и в папке-источнике, то он заменяется... ... Проблема в другом — если в исходной папке какой-либо файл был удален (например он больше вам не нужен), то в копии он все равно останется... ... * /S /F /Q Она уничтожит все файлы из папки архива и всех вложенных в нее папок... ... Обратите внимание на расширение этого файла, оно должно быть именно BAT , а не TXT... ... В результате этой простой операции у вас на рабочем столе появится ярлычек, кликнув по которому вы запустите полностью автоматический процесс создания резервной копии всех файлов Microsoft Excel из папки texts диска C:... ... Достаточно одного файла чтобы создать сколько угодно копий... ... * f:\arhiv\doc\ /Y /S Этот файл создаст полные копии папок texts и prikaz диска C: и папки doc диска D:... ... копируются абсолютно все файлы, хотя делать это каждый раз вовсе не обязательно... ... Хорошо бы, добиться такого эффекта, когда: в копии заменяются только те файлы, которые изменились в оригинале в копию добавляются те файлы, которые появились в папке оригинала из копии удаляются все папки и файлы, которые удалились в оригинале... ... rar d:\work\prikaz В результате его работы в папке arhiv диска F: будут созданы три файла: texts... ... архиватору придется полностью упаковать все файлы из исходных папок... Подробнее: http://fit-media.com/post_1203529769.html


  5. Залепа №9. Microsoft друзей не признает.

    Степень соответствия запросу: 8,25%
    Фрагменты текста поста :
    ... Конечно, "дата" должна также уметь себя вывести, переслать в файл или из файла, сравнить себя с другими датами и так далее... ... Следуя описанному выше работа с классом "дата" должна выглядеть примерно так: Пример кода: CDate cd = new CDate()... ... // инициализировали другим объектом класса CData (присваивание) cd... ... // сохранили дату в файл cd... ... // прочи дату из файла int days = cd - new CDate("28... ... Естественно, класс CDate должен быть порожден от System... ... Итак, упростим задачу до предела: есть класс CDate , представляющий ни что иное как обычную календарную дату... ... Требования к реализации: 1) все операции касающиеся даты, должны выполняться в классе CDate... ... никаких собственных вычислений дат и периодов он не делает - у нас для этого есть CDate... ... пользователь нашего класса CDate НЕ должен иметь доступ к функциям внутренней обработки... ... Более того, пользователь не должен даже догадываться о том, что CDate использует внутри еще что-то... ... 3б) проект должен иметь некую "модульную" структуру, чтобы встраивание класса CDate в реальную программу было максимально простым... ... Из третьего пункта следует, что объекты класса CCalendar будут создаваться не пользователем, а только классом CDate , им же они будут контролироваться в течении всей жизни календаря и, в конце-концов, он же их будет и уничтожать... ... Судя по первым двум пунктам, наши объекты CDate и CCalendar будут активно вызывать методы друг друга... ... Причем, скорее всего случится так, что календарю потребуется доступ к некоторым методам CDate , которые предназначены для внутренних механизмов самого CDate... ... :( В C++ мы бы просто сделали класс CCalendar другом класса CDate , разрешив тем самым календарю использовать внутренние механизмы в виде вызовов защищенных методов CDate... ... Выигрыш от него на лицо: календарь может использовать скрытые возможность CDate , при этом пользователь все так же остается ограниченным рамками предоставленного нами открытого интерфейса CDate (пункт 3 выполняется в полной мере)... ... И поэтому, чтобы открыть доступ календарю к скрытой внутренней функциональности CDate , нам придется открыть эту функциональность и для всех остальных... ... А именно, если распространять свой класс CDate в виде исходников, то он потянет за собой и класс CCalendar , а мы бы не хотели, чтобы пользователь знал о нем... ... Сборки - это здорово по отношению к DLL , но убого по отношению к обычным библиотечным файлам, которые до... Подробнее: http://fit-media.com/post_1199568462.html


  6. Привратник-младший. Турбо-решение.

    Степень соответствия запросу: 4,15%
    Фрагменты текста поста :
    ... В результате, если он получает сэндвич из редиректа с кодом-404, то вместо выполнения ожидаемого редиректа он радостно выводит серферу корявое окно с текстом «... ... Но если вам важен каждый процент нагрузки сервера и плевать вы хотели на случайных серферов, пользующихся неправильными броузерами, то замените в файле pr... ... Чуть ниже в файле идет список стоп-слов, найдя которые в юзер-агенте скрипт безаговорочно выплюнет 404... ... Сохраняйте изменения и закачивайте его на сервер в папку с блогом (это папка, в которой расположены файлы functions... ... Теперь, чтобы подключить скрипт к блогу, необходимо внести изменения в файл... ... Настоятельно рекомендую скопировать куда-нибудь этот файл до того, как вы начнете его редакторовать... ... вам достаточно будет вернуть родной файл... ... Итак, вот содержимое файла... ... htaccess, который поставляется Вадимом в комплекте Lasto-Blog-B: Исходный файл... ... php А вот то, что должно быть после изменения: Модифицированный файл... ... php После изменений сохраните файл... Подробнее: http://fit-media.com/post_1225008537.html


  7. 14 принципов создания вежливых программ

    Степень соответствия запросу: 1,11%
    Фрагменты текста поста :
    ... Результаты их работы, опубликованные в книге "The Media Equation", показывают, что человек реагирует на компьютер так же как на других людей... ... Эти студенты были высокообразованными, зрелыми индивидуумами, но не смотря на это все без исключения отрицали, что благодаря своим познавательным способностям программы воздействуют на них эмоционально, хотя результаты наблюдений являлись неопровержимым доказательство обратного... ... Если программа скупа на информацию, скрывает результаты своей работу, заставляет пользователя искать где находятся простейшие функции, и винит его в своих собственных неудачах, то пользователю она точно не понравится... ... С большинством из них я общаюсь редко, но этот список включает в себя Дейва Карлика (Dave Carlick), которому я пишу письма постоянно... ... Я не хочу слышать ее нытье о том, что она не уверена, в какое место на диске записать файл... ... Для этого консьержу не требуется много усилий, но в результате я возвращаюсь в этот отель снова и снова... ... Если я прошу компьютер удалить файл, я не хочу чтобы он спрашивал у меня "Вы уверены... ... Я хочу, чтобы он имел смелость в своих убеждениях и удалил файл... ... С другой стороны, если компьютер имеет какие-то подозрения, что я могу ошибаться – что может быть всегда – он должен предусмотреть это, и подготовиться к возможному восстановлению файла, если я вдруг передумаю... Подробнее: http://fit-media.com/post_1203349390.html


  8. Искать или не искать - вот в чем вопрос.

    Степень соответствия запросу: 0,87%
    Фрагменты текста поста :
    ... Англоговорящим буржуям в этом смысле повезло гораздо больше - у них слова практически не изменяются и даже банальный LIKE в SQL-запросе способен дать вполне приемлемые результаты... ... Этот подход дает достаточно приемлемые результаты... ... Получается, что нужно произвести 300 000 сравнений, чтобы получить полный результат... ... Соответственно результаты поиска будут захламлены нерелевантными документами, которые просто содержат слова похожие на искомые... ... Что собственно и наблюдается в результатах поиска по блогу... ... Последние варианты этих поделок даже умеют интегрировать результаты работы в существующий дизайн сайта, для еще большего комфорта... ... К тому же даже во встроенном варианте результаты поиска будут генерироваться java-скриптом, а значит не могут являться сырьем для создания сети внутренних линков, поскольку поисковикам они будут не видны... ... Вот, собственно, и задача сформировалась: создать нечто, что будет использовать для поиска по сайту ресурсы какой-либо из поисковых машин и при этом результаты будет встраивать в страницу сайта в виде полноценных статичных и видимых всеми ссылок... Подробнее: http://fit-media.com/post_1245195136.html


  9. Как Заиконить Сайт

    Степень соответствия запросу: 0,63%
    Фрагменты текста поста :
    ... :) Второе - переименование файла... ... Файл иконки можно располагать в любой папке, доступной серферу... ... Более того, можно сделать так, что в разных папках будут лежать разные файлы иконок... ... :) Если Вы располагаете файл иконки не в дефолтовом месте (корневая папка сайта) и/или не с дефолтовым именем (favicon... ... :) Все, что Вам потребуется - вписать строку AddType image/ICO ICO в файл... Подробнее: http://fit-media.com/post_1212879390.html


  10. Урок информатики для мелкософта (пояснение к залепе №8)

    Степень соответствия запросу: 0,59%
    Фрагменты текста поста :
    ... В частности о "сокращенной" записи некоторых операций... ... Пришло, наконец, время объяснить, в чем же различия между полной и сокращенной записью команд и почему одно вовсе не соответствует второму... ... Значение переменной a складывается с значением переменной b и результат заносится в переменную c... ... этот метод что-то сделает (например прибавит одно к другому) и создаст временный объект типа Т для хранения результата... ... Ладно, давайте перейдем к "сокращенной" записи описанной выше операции и подумаем вот над чем: теоретически методы operator+() и operator+=() должны делать одно и тоже, различие лишь в том, куда направится результат... ... Вроде бы разницы в результатах быть не должно, но если бы так было на самом деле, то в С++ создатели не вводили бы лишний тип - ссылки... Подробнее: http://fit-media.com/post_1198760520.html


История внешних поисковых запросов

Меню

  • Главная страница
  • Оглавление блога
  • Лента новостей
  • Обратная связь
  • Правила блога

Анонсы по темам

  • Все посты блога
  • С миру по нитке
  • Мысли вслух
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Категории

  • Все посты по порядку
  • С миру по нитке
  • Графика и фото
  • Кривизна платформы .NET
  • Грамотные интерфейсы
  • WEB-программирование
  • FlatCMS - шустрая и гибкая
  • Доработки Lasto-блога

Сервисы

  • Поиск по блогу
  • Поиск по всему сайту
  • Шпионское досье

Реклама


Стоимость сайта

Мой вебсайт стоит 865 404,18 руб

Статистика

    Widgetize!
  • Время работы: 0,63316 сек.
  • Память: 17 664 кБт
  • Статистика привратника
Copyright FIT-Media.com, © 2007-2010
Главная | Общее оглавление | Обратная связь | Правила блога | Лента RSS