Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 28 [показано 10]
Файлы vs базы данных.
Степень соответствия запросу: 94,6%
Фрагменты текста поста : ... Просто одной командой вы можете превратить ваш супер запутанный массив в текст, а второй точно также вернуть все обратно... ... приходится парсить (разбирать) огромный объем текста, выискивая в нем те самые спец-символы, по ним восстанавливать значения исходных ячеек и клеить их в результирующий массив... ... А значит парсинг текста и построение массива, равно как и последующая склейка все равно будут выполняться при каждом обращении к скрипту (сайту)... ... Первое на что хотелось бы обратить внимание — это тот факт, что подобную структуру не удастся (по крайней мере целиком) уложить в одну таблицу, а это значит будут использованы несколько связанных таблиц ( реляционная структура )... ... При нормальном (читай « грамотном ») подходе тут будут использованы аж три таблицы: в первой будут храниться хосты поисковиков (по одному на запись), во второй — запросы с хостов (каждый запрос в отдельной записи), ну и в третьей — собственно количество посетителей по дням для каждой из искалок по каждому из запросов... ... каждой записи из первой таблицы соответствуют несколько записей из второй, каждой из которых соответствуют несколько записей из третьей... ... :-) Структура, например, такая: Структура таблиц Таблица se_hosts -------------------- ID1 — уникальный числовой номер (используется для связи таблиц) Host — имя хоста поисковика Таблица se_query --------------------- ID2 — уникальный числовой номер (используется для связи таблиц) SH_ID — уникальный номер для ссылки на первую таблицу Query — текст искомой фразы Таблица se_hits ------------------- Q_ID — уникальный номер для ссылки на вторую таблицу Date — кво-дней с 1 января 2000 года Hits — количество хитов за этот день Естественно первая и третья таблицы будут иметь индексы по первым двум полям, а вторая — по всем... ... Итак, сперва производим поиск в первой таблице... ... Если не использовать индексы, то для выполнения этой операции придется провести сравнение имен хоста с содержимым поля Host первой таблицы для части (а в худшем случае всех ) записей... ... Индексный файл содержит копию проиндексированного поля (или полей) из таблицы БД, но в отсортированном виде... ... Весь диапазон значений (количество записей в таблице) делится пополам и сравнение искомого значения происходит со значением поля сразу из середины таблицы... ... Таким образом, одной операцией сравнения мы сразу определяем в какой из половин таблицы находится нужная нам запись, т... ... Затем оставшийся диапазон (половина таблицы) снова делится пополам и все повторяется до тех пор, пока мы не найдем нужную запись, либо убедимся, что ее нет... ... Для примера, в таблице из 100 записей для поиска любого значения в наихудшем случае понадобится всего 7 сравнений... ... Как нетрудно догадаться поиск во второй таблице нам даст уже экономию времени в 15*10 = 150 раз... ... во второй таблице при поиске будет использоваться фильтрация по SH_ID (нам же нужны фразы только с найденного хоста, а не все подряд)... ... Ну и третья таблица — ускорение в 150*10 = 1500 раз... ... Нам нужно загрузить ТОЛЬКО ОДНУ ЗАПИСЬ , а вовсе не всю таблицу... ... В нашем случае размер записи (для третьей таблицы) составляет 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Идея глобального контента
Степень соответствия запросу: 1,92%
Фрагменты текста поста : ... По теме проектирования баз данных написано множество книг и статей, но все они содержат больше технической информации (описания систем индексации, поиска и связывания таблиц) и предлагают дробить всю информацию на множество таблиц, не забыв склеить все это в тугой узел с помощью связей (relations) и зависимостей... ... Идентификатор родительского элемента сайта ( parent_id - мы же строим иерархическую систему) Заголовок ( title ) Описание ( description ) Краткое содержание ( summary - используется в качестве анонса) Собственно текст старницы ( content ) Ключевые слова ( keywords ) Идентификатор автора ( user_id ) Дата создания ( created ) Дата последнего изменения ( modified ) Флаг опубликованности ( published ) Идентификатор логического раздела ( category ) Вроде ничего не забыл... ... Список полей: Уникальный идентификатор ( id ) Идентификатор статьи с в блоге, к которой относится данный комментарий ( parent_id ) Заголовок ( title ) Собственно текст ( content ) Идентификатор автора ( user_id ) Дата создания ( created ) Флаг промодерированности ( published ) Как видим, поля всё теже, что и для статичной страницы, отличие лишь в количестве... ... Проанализировав описанное выше, можно легко сделать вывод, что при проектировании CMF логично создать всего одну (большую) универсальную таблицу в базе данных для хранения практически любого вида контента... ... ), то она запросто может сканировать его и строить необходимые для реализации поиска по сайту таблицы... ... БД постоянно будет использовать одну таблицу, а значит часть ее всегда будет торчать в памяти (кэше), соответственно запросы должны выполняться гораздо быстрее... ... форма таблиц БД%%%  ... Подробнее: http://fit-media.com/post_1242742678.htmlВизуальный редактор для Lasto-Blog-B
Степень соответствия запросу: 1,1%
Фрагменты текста поста : ... Визуальный редактор для Lasto-Blog-B Автор скрипта Lasto-Blog-B (на котром работает этот блог), Вадим Ласто , к сожалению, не потрудился встроить в свое творение сколько-нибудь нормальный редактор текста... ... До сих пор я использовал различные оффлайновые редакторы для подготовки статей, перепробовал множество разных, и, наконец, пришел к выводу, что наилучшее решение - старый добрый полноценный визуальный редактор текста... ... Вот как оно выглядит в этом блоге: Особенности (возможности): Работа с буфером обмена (вставка текста с форматированием и без) Автоматическое преобразование форматированного текста из MS Word в HTML Отмена / повтор последних операций Поиск и замена в существующем тексте Удаление старого форматирования Работа с таблицами (создание, редактирование, удаление) Вставка смайлов ... ... и спец-символов Возможность работы в полноэкранном режиме (на всю ширину окна броузера) Автоматическая загрузка картинок и флеш-роликов на сервер Отбивка по левому / правому краю и по центру Поддержка всех стандартных тэгов форматирования ( жирный , курсив , подчеркнутый , зачернутый , индекс , степень ) Поддержка двух видов списков (нумерованный и ненумерованный) Смена цвета текста и фона текста Вставка и редактирование гиперссылок и якорей Поддержка стилей и текстовых форматов для быстрого редактирования Встраиваемость в дизайн Ласто-блога и т... Подробнее: http://fit-media.com/post_1224871025.htmlПользовательский интерфейс
Степень соответствия запросу: 0,81%
Фрагменты текста поста : ... То есть из всего разнообразия изобразительных средств - формы, размера, цвета, текста - в кнопках диалогов используется только текст... ... Считается хорошим тоном иметь кнопки одного размера и аккуратно расположенные, чтобы вынудить пользователя каждый раз прочитывать текст... ... Исключением, подтверждающим правило, является кнопка OK, которая смотрится не как текст, а как изображение (иероглиф)... ... В них кнопки разбросаны в кажущемся беспорядке, имеют разный размер, большинство обозначено пиктограммами, а текст остальных очень короток (например, Play) и тоже скорее играет роль пиктограммы... ... Выучив алфавит, можно читать любой текст... Подробнее: http://fit-media.com/post_1204019048.htmlЗалепа №4. Деревянный TreeView.
Степень соответствия запросу: 0,56%
Фрагменты текста поста : ... Но это только до тех пор, пока вы не попытаетесь развернуть какой-либо из узлов дерева... ... Если дерево изначально развернуто, то глюк не наблюдается вообще... ... Видите, в нем до печати текста происходит стирание площадки под текст... ... по логике вещей, если бы в событие просто были переданы неверные координаты области текста, то было бы все понятно - вывод идет не в то место окна и потому надписи появляются абы где... Подробнее: http://fit-media.com/post_1197577126.htmlГрамотный интерфейс: поля ввода
Степень соответствия запросу: 0,36%
Фрагменты текста поста : ... Раскрасим текст... ... Помочь пользователям в этом случае можно раскрасив текст в текущем поле ввода... ... Программируется такое поведение сверх-просто: как только фокус ввода передается какому-то контролу, значение его свойства " цвет текста " ( ForeColor , TextColor ) меняется на " красный " ( Color... ... Red ), а при потере фокуса контролом цвет текста восстанавливается на стандартный ( SystemColors... Подробнее: http://fit-media.com/post_1205142560.htmlMySQL: MyISAM хотят заменить на новый движок Maria
Степень соответствия запросу: 0,2%
Фрагменты текста поста : ... INSERT и INSERT (множество строк), ALTER TABLE LOAD INDEX может пропускать неиспользуемые индексные блоки Новый блочный формат строк, в котором данные хранятся ввиде страниц При использовании блочного формата строк (выбираемого теперь по умолчанию) строковые данные могут кешироваться Блочные тесты большинства элементов Поддержка как отказоустойчивых (crash safe, транзакциональных) так и нетранзакциональных таблиц... ... (Нетранзакцональные таблицы не логируются и для строк используется меньше места): CREATE TABLE foo (... ... Не поддерживается INSERT DELAYED Не поддерживается кеширование составных ключей Устранение недостатков до следующих релизов Хранение очень малых строк Не поддерживаются MERGE таблицы Различия, которые вероятно не будут устранены Страницы данных в блоковом формате увеличивают размеры: 10 байт на страницу и 5 байт на строки... Подробнее: http://fit-media.com/post_1202730586.htmlЕсли бы microsoft не была такой ленивой...
Степень соответствия запросу: 0,2%
Фрагменты текста поста : ... Дело в том, что рано или поздно перед разработчиками прикладных программ встает проблема проверки этого самого правописания в вводимом пользователями тексте... ... Прикол в том, что практически 100% программ используют для ввода текста элементы управления, встроенные в операционную систему... ... Так вот, достаточно встроить механизм проверки орфографии в саму ОС и подключить его к двум основным средствам ввода текста (в терминах NET Framework это TextBox и RichTextBox ), как абсолютно все программы, без какого бы то ни было вмешательства разработчиков, приобретут возможность отображения неверно написанных слов... Подробнее: http://fit-media.com/post_1205882168.htmlЗалепа №1. Убогий TreeView.
Степень соответствия запросу: 0,15%
Фрагменты текста поста : ... юзер щелкает по узлу, узел переходит в режим редактирования, при этом программа заменяет текст с "[15... ... Его-то юзер и изменяет например на "Валенки" , затем жмет Enter (конец редактирования) и программа снова заменяет текст узла с "Валенки" на "[15... ... AfterLabelEdit сначала проверила корректность ввода, а потом аккуратно подменила бы текст "Валенки" на "[15... ... после того, как юзер ввел некий текст, наша программа анализирует его на "профпригодность" и выносит вердикт можно ли его допускать для дальнейшей работы или нет... Подробнее: http://fit-media.com/post_1197402793.htmlОптимизируем мышиную возню
Степень соответствия запросу: 0,09%
Фрагмент текста поста : ... Например, было бы здорово, если бы в текстовом редакторе существовала возможность выделить кусок текста и перетащить его на кнопку принтера, тем самым послав на печать ТОЛЬКО выделенный текст... Подробнее: http://fit-media.com/post_1199978157.html
