Автор будет очень признателен, если Вы кликнете по одной из белых ссылок выше.
Вам это ничего не стоит, а автору сайта будет приятно ;)
Найдено страниц: 62 [показано 10]
Файлы vs базы данных.
Степень соответствия запросу: 24,95%
Фрагменты текста поста : ... В качестве примера «файлового подхода» я буду использовать движок этого блога ( Lasto-blog-B ), точнее работу его системы статистики... ... Будем анализировать работу именно с этим файлом... ... Таким образом, чтобы узнать, сколько человек посетило страницу stat... ... html в определенный день, нужно сперва вычислить сколько дней прошло с 1 января 2000 года до искомой даты, затем «заглянуть» в ячейку массива Пример кода $ar['pages']['/stat... ... html'][к-во дней] Число, которое мы «увидим» в этой ячейке и будет искомым количеством посетителей нашей страницы... ... com||вася пупкин'] В этом случае для сравнения строк будут использованы встроенные средства языка (библиотечные функции), которые работают гораздо быстрее самих PHP-шных скриптов, но все равно операцию эту быстрой не назовешь... ... Случаи когда с данной поисковой машины еще не было посетителей и нужно создавать целую ветку массива рассматривать не будем... ... А значит парсинг текста и построение массива, равно как и последующая склейка все равно будут выполняться при каждом обращении к скрипту (сайту)... ... К тому же не стоит забывать, что пока одна копия запущенного скрипта копается в вашем (пусть и прокэшированном) файле, все другие будут тихо и мирно курить в сторонке... ... Другими словами, пока идет обработка одного посетителя, все остальные будут ждать ибо для них доступ к файлу статистики окажется заблокированным... ... Первое на что хотелось бы обратить внимание — это тот факт, что подобную структуру не удастся (по крайней мере целиком) уложить в одну таблицу, а это значит будут использованы несколько связанных таблиц ( реляционная структура )... ... Для данного примера также будем рассматривать работу только с одним «разделом» статистики — данных о поисковых запросах... ... При нормальном (читай « грамотном ») подходе тут будут использованы аж три таблицы: в первой будут храниться хосты поисковиков (по одному на запись), во второй — запросы с хостов (каждый запрос в отдельной записи), ну и в третьей — собственно количество посетителей по дням для каждой из искалок по каждому из запросов... ... :-) Структура, например, такая: Структура таблиц Таблица se_hosts -------------------- ID1 — уникальный числовой номер (используется для связи таблиц) Host — имя хоста поисковика Таблица se_query --------------------- ID2 — уникальный числовой номер (используется для связи таблиц) SH_ID — уникальный номер для ссылки на первую таблицу Query — текст искомой фразы Таблица se_hits ------------------- Q_ID — уникальный номер для ссылки на вторую таблицу Date — кво-дней с 1 января 2000 года Hits — количество хитов за этот день Естественно первая и третья таблицы будут иметь индексы по первым двум полям, а вторая — по всем... ... Сразу скажу, что все операции будут выполнены функциями из ОТКОМПИЛИРОВАННЫХ библиотек PHP, поэтому скорость их работы будет максимальной... ... Но суть не в этом, а в том, что количество этих операций будет намного меньшим... ... И хотя это будет гораздо быстрее чем сканирование массива (за счет работы библиотечных функций) все равно потребует много времени... ... Благодаря тому, что мы проиндексировали поле с именем хоста, мы находим нужную запись в 15 раз быстрее, чем в массиве (буду брать наихудший вариант)... ... во второй таблице при поиске будет использоваться фильтрация по SH_ID (нам же нужны фразы только с найденного хоста, а не все подряд)... ... Буду до конца честным и расскажу о них... ... Для работы механизма БД, система должна будет загрузить целиком в память три файла индексов... ... Поскольку записи в нашей третьей таблице (в данном случае) также будут иметь фиксированную длину, то поиск нужной внутри файла также сведется к одному сложению и одному умножению, а уж прочесть и снова записать на тоже место 12 байт — милисекундное дело (даже с учетом автоматической коррекции индексного файла)... ... Да еще про кэширование вспомним :-) Кстати, если ваш сайт достаточно посещаем, то файл статистики будет расти как на дрожжах и каждое обращение к скрипту будет вызывать чтение/парсинг/поиск/сохранение всех этих десятков мегабайт, а при использовании БД при любом количестве посетителей нам все так же будет нужно читать всего несколько сотен байт (три записи из таблиц), а записать - только 12 байт... ... записи из первых двух таблиц не нужно будет передавать в скрипт, а мотор СУБД обработает их сам и очень-очень быстро... Подробнее: http://fit-media.com/post_1222679684.htmlКручу, верчу, обмануть хочу!
Степень соответствия запросу: 12,24%
Фрагменты текста поста : ... Поэтому касаться их больше не будем, а все, что написано ниже, относится только к первым шести видам трансформаций... ... вы сами будете управлять тем, насколько сильно повлияет трансформация на исходное изображение... ... На нем появится описывающий прямоугольник (ОП), линии которого будут проходить точно по краям выделенной области (или изображения из слоя, если вы работаете с целым слоем)... ... , с помощью которых вы и будете управлять трансформацией... ... Но если при перетаскивании держать нажатой клавишу Alt , то противоположная сторона будет тоже двигаться... ... При этом исходные пропорции сохранены не будут... ... Естественно, если вы будете держать нажатым Alt , то мастабирование будет симметричным... ... И чем дальше вы утяните курсор, тем больший угол будет у поворота... ... Если при повороте держать нажатой клавишу Shift , то объект будет поворачиваться на угол, кратный 15 градусам... ... В отличии от предыдущих режимов, при изгибании вы увидите не описывающий прямоугольник, а целую сетку, которая будет лежать поверх выделенного изображения... ... При перетаскивании сетка будет изгибаться, а за ней точно так же будет изгибаться и ваше изображение... ... Запустив свободную трансформацию, вы увидите уже знакомый ОП, но теперь он будет действовать намного хитрее... ... Простые перетаскивания квадратиков будут действовать так же как и при масштабировании... Подробнее: http://fit-media.com/post_1212106379.html14 принципов создания вежливых программ
Степень соответствия запросу: 12%
Фрагменты текста поста : ... Это также не зависит и от того, насколько находчивой, представительной, метафоричной, наполненной содержанием или персонализированной она будет... ... интерфейс командной строки тоже будет нравиться, если он будет обладать вышеуказанными качествами... ... Человек склонен к ошибкам, медлителен и импульсивен, но это не значит, что программа с такими качествами будет считаться хорошей... ... Тогда выбор будет за вами – стоит ли тратить время на дополнительную точность... ... Когда я обедаю в ресторане, я ожидаю, что официант будет реагировать соответствующим образом на мои намеки... ... Когда я веду оживленную беседу с соседями за столом, я ожидаю что официант в это время будет выполнять другие дела... ... Было бы неуместным, если бы он прервал наш разговор и сказал "Привет, меня зову Рауль, и я буду вашим официантом на этот вечер"... ... В баре, салоне и психиатрическом кабинете бармен, парикмахер и доктор будут умалчивать о своих проблемах и показывать интерес в ваших... ... Для этого требуется определенная смелость, но эта смелость будет оценена... ... Будут нас обыскивать или нет... ... Если мы знаем, что обыска не избежать, мы никогда не будем лгать... ... А если мы знаем, что никакого обыска не будет, нас будет одолевать искушение провезти лишнюю пачку Мальборо... ... Я называю эту способность человека действовать вне существующей схемы обработки информации до того, как все необходимы реквизиты будут доступны подстраиваемостью... ... Служащий не сможет переместить документ в начало очереди, пока он не будет четко видеть саму очередь, ее начало и конец, документ и его положение в очереди... ... Мы можем сделать программы значительно более вежливыми, если они будут работать для того, чтобы предоставить пользователю всю возможную информацию без значительных усилий с его стороны... Подробнее: http://fit-media.com/post_1203349390.htmlAJAX — WEB 2.0 за 5 минут
Степень соответствия запросу: 9,27%
Фрагменты текста поста : ... все это больше не будет для вас проблемой &mdash... ... наш контейнер, в который мы и будем загружать данные... ... Поэтому сделаем файл, который будет посылать некий ответ на наш запрос... ... после выполнения функции mytest() внутри контейнера будет помещено содержимое нашего файла (в данном примере это будет надпись "... ... Решается эта задача так же просто, но сперва давайте создадим серверный скрипт, который будет получать данные с нашей страницы и отправлять ответ... ... Наш скрипт будет получать со страницы имя пользователя и отправлять назад приветствие... ... Файл будет зваться name... ... > Мы будем отправлять данные (введенное имя) в скрипт методом POST (а почему бы и нет... ... Теперь она будет выглядеть вот так: Измененная функция mytest() function mytest() {  ... ... В принципе этой информации уже достаточно, чтобы соорудить сколько угодно сложное взаимодействие с пользователем... ... Поэтому будем искать другой подход... ... Теперь он будет получать два значения: имя пользователя и его возраст и возвращать приветствие и год рождения пользователя (текущий год минус возраст)... ... > Код страницы так же будет изменен... ... мы больше не будем "... ... Вместо этого он принимает третьим параметром функцию, которая будет обрабатывать полученные с сервера данные... ... Теперь, если вам нужно передать на сервер больше данных, то просто добавьте в форму сколько угодно полей различных типов (радио-кнопки, текстовые области, пароли, чек-боксы)... ... Первая будет вызвана перед началом отправки данных (в данном примере она покажет alert-окно с надписью 'start uploading'), а вторая &mdash... Подробнее: http://fit-media.com/post_1262093659.htmlЗалепа №13. О грамотном проектировании и неграмотном IDE.
Степень соответствия запросу: 8,3%
Фрагменты текста поста : ... Для простоты будем рассматривать только один из таких справочников - справочник пользователей... ... Для целей добавления/редактирования будет использоваться еще одно окошко - форма редактирования пользователя... ... Все это можно перетерпеть если вы создаете класс, который будет использоваться только в вашей программе и код которого никогда не будет использован где-либо еще... ... И ему также не нужно будет обращаться к внутренней структуре других классов, т... ... Он их будет создавать и удалять (редактирование списка пользователей), получать из них информацию и передавать ее в основную программу... ... Для справочника пользователей, которых не больше сотни этот подход будет работать более-менее нормально... ... Но если это будет справочник артикулов продукции, которых может быть несколько десятков тысяч, то мы получи дикий перерасход памяти, ведь для каждого объекта будет создано отдельное (пусть и скрытое) окно... ... Это вызовет не только расход памяти, но и будет существенно тормозить программу... ... Как же будет выглядеть решение нашей задачи при использовании вложенных классов... ... Классы, созданные по описанной выше "технологии" будут нормально компилироваться и работать (а как же иначе - все ведь сделано верно, в соответствии с требованиями и возможностями языка C#)... ... Но в IDE вы не сможете использовать визуальный редактор для форм, которые являются вложенными в другие классы (в нашем случае это CUserEdit и CUserList ) - IDE вместо отображения формы просто будет материться по-английски... Подробнее: http://fit-media.com/post_1204892317.htmlИскать или не искать - вот в чем вопрос.
Степень соответствия запросу: 7,78%
Фрагменты текста поста : ... Все продукты Вадима Ласто в той или иной степени ориентированы на монетизацию... ... И это касается не столько владельцев сайтов, сколько посетителей... ... Но если ресурс действительно крупный (а даже средние блоги могут легко заиметь несколько сотен докуметов), то в карте сайта уже нет места для прописки каждой страницы - только разделы и секции, что не есть хорошо, т... ... Но вот с русским такая фишка не проходит - два слова, различающиеся всего одной буквой будут расценены как разные... ... Если не вдаваться в подробности, то этот алгоритм просто сравнивает два слова и выдает число, которое является показателем, сколько нужно сделать вставок, замен и удалений символов, чтобы из первого слова получить второе... ... совпадет не только с реально однокоренными словами, но и со словами, совершенно никакого отношения к искомому не имеющими... ... так же будет учтено... ... Соответственно результаты поиска будут захламлены нерелевантными документами, которые просто содержат слова похожие на искомые... ... Для поисковиков такое захламление только в плюс - увидят лишние ссылки на внутренние документы... ... Собственно реально приемлемый вариант только один, т... ... Остается только второй вариант - использование сторонних сервисов... ... Благо их в достатке - все поисковые машины только для того и рождены, чтобы реализовывать этот самый поиск... ... Нам же остается только лишь придумать способ использования их ресурсов для наших целей... ... К недостаткам же стоит отнести то, что такие механизмы либо платные, либо будут втихаря крутить на вашем сайте разную рекламу, либо не позволят встроиться в дизайн и будут тупо перенаправлять ищущих на свои сайты, где опять же будут крутить рекламу... ... К тому же даже во встроенном варианте результаты поиска будут генерироваться java-скриптом, а значит не могут являться сырьем для создания сети внутренних линков, поскольку поисковикам они будут не видны... ... Вот, собственно, и задача сформировалась: создать нечто, что будет использовать для поиска по сайту ресурсы какой-либо из поисковых машин и при этом результаты будет встраивать в страницу сайта в виде полноценных статичных и видимых всеми ссылок... Подробнее: http://fit-media.com/post_1245195136.htmlDropBox - убийца фалообменников
Степень соответствия запросу: 7,7%
Фрагменты текста поста : ... он будет использоваться в качестве логина для входа в систему... ... Пока идет закачка в вашем броузере будет показана страница с инструкцией (с картинками) о том, как устанавливать клиента... ... Если все в порядке, то в следующем окне вам будет предложено выбрать тарифный план... ... аж 5 раз (пока инсталлятор будет вам показывать все туже инструкцию по использованию программы... ... Именно содержимое этой папки и будет автоматически синхронизироваться с сервером... ... Это значит, что стоит вам удалить какой-то файл из этой папки, как он тут же будет удален с сервера... ... Все остальные папки и файлы, которые вы можете создать и которые НЕ будут находиться внутри папок Public или Photos никогда не будут доступны другим пользователям (за одним маленьким исключением, которое называется "... ... Вот так, например, будет выглядеть только созданный мной альбом: Все картинки в нем кликабельны, клик на любой из них покажет ее в более крупном размере... ... Еще раз напомню, что если вы удалите как-нить файлы из ваших папок Public или Photos (или любых других внутри папки My Dropbox ), то эти файлы тут же будут удалены с сервера... ... все закачается без проблем, даже если вы будете каждую минуту выдергивать вилку модема из розетки... ... если какой-любо из закачанных файлов изменился, то перезалита будет только изменившаяся часть, а не весь файл... ... дропбокс будет стараться не мешать вашей работе в интернете... Подробнее: http://fit-media.com/post_1256945370.htmlПользовательский интерфейс
Степень соответствия запросу: 7,49%
Фрагменты текста поста : ... Во-первых, в понятие пользовательского интерфейса (ПИ) входит не только, и даже не столько, картинка на экране - трехмерная, анимированная, просто выполненная в модном дизайне, - а способы взаимодействия пользователя с системой... ... Например, такой интерфейсный элемент как линейка прокрутки находится в противоречии с одним из основных принципов психологии восприятия: у человека может быть только одна точка активного внимания... ... До последнего времени на компьютерах любители могли только играть в игры... ... Прирастать пользователи будут только любителями... ... Наш (не)удачный предшественник - оконный интерфейс решил только первую задачу концептуального дизайна... ... Об общем стиле экранного изображения речи вообще не идет, если только не считать за таковой набор "тем"... ... Он утверждает, что наше восприятие основано на мотивации в том смысле, что если мы хотим есть, то видим только съедобные вещи, а если устали - то только предметы мебели, предназначенные для отдыха... ... Но эти сигналы крайне слабы, поскольку все кнопки выглядят одинаково, отличаясь только текстами в них, а функции у них совершенно различны... ... То есть из всего разнообразия изобразительных средств - формы, размера, цвета, текста - в кнопках диалогов используется только текст... ... Если среда по виду и некоторым опорным элементам будет напоминать пользователю что-то уже знакомое, он сможет быстрее приспособиться к ней... ... Чтобы пользователю легко было с ними взаимодействовать, они должны занимать на экране заметное место (а то трудно будет попасть в них мышью)... ... Поле экрана разбивалось на прямоугольники-окна и вся работа велась только в одном из них - так называемом активном окне... ... Эта возможность не только теоретически осознана, но и уже около пяти лет находится в стадии экспериментального исследования... ... Это нормальная стена, только очень длинная, разбитая на три отрезка... ... В этот интервал входит не только время вывода новой картинки на экран, но и время осознания ее пользователем, ведь определенное время и усилия тратятся пользователем на то, чтобы понять, как каждая следующая картинка соотносится с предыдущей... ... Это - сигнал о том, что на действия пользователя система временно реагировать не будет... ... Современные дисплеи отображают миллионы цветов, но это - вещь в себе, поскольку, даже если человеческий глаз и в состоянии отличить столько оттенков, человеческий мозг не в состоянии придавать им смысл... ... Пользователю, который ничего этого не заметит, но зато будет гораздо проще и быстрее взаимодействовать с системой... ... К сожалению, следует констатировать, что сегодня стандартом стал плохой интерфейс, даже не столько плохо сделанный, сколько вообще "получившийся сам собой"... ... " - и продать ваше изделие будет гораздо легче... ... Однако, купив его и включив дома, этот покупатель будет, скорее всего, пользоваться стандартными кнопками для стандартных действий, показывая возможность А только гостям... Подробнее: http://fit-media.com/post_1204019048.htmlКак создать хороший интерфейс пользователя?
Степень соответствия запросу: 5,42%
Фрагменты текста поста : ... Рекомендую вам уделить одинаковое внимание следующим пунктам: Пользователи: их опыт работы с компьютером, мотивы, размер/важность групп пользователей, образцы (типовые ситуации) использования Задачи: что послужило причиной создания проекта, этапы создания проекта, какие результаты должны быть получены, какая информация необходима и когда Технология разработки и платформа , на которой будут работать пользователи Среда , в которой будет создаваться и использоваться проект (физическая, рыночная, организационная и культурная) Используйте эту информацию для определения и расстановки приоритетов... ... У пользователей будут экраны с разрешением 800х600... ... Много дискуссий без значительного прогресса Вы не оправдаете ожиданий спонсоров вашего проекта (людей у которых есть причины забоится о доходе) Начальная фаза разработки: концептуальный дизайн В этой фазе разработки вы должны решить какой интерфейс лучше всего будет подходить для достижения ваших целей - текстовый, графический или мультимедиа... ... Например, для графического интерфейса пользователя выбор следующий: Множественные окна MDI (много-документный интерфейс) Множественные фреймы Неструктурированное взаимодействие: экраны с гиперссылками Различные структуры взаимодействия обеспечивают разные степени гибкости для пользователей... ... Например, можно ли будет оставить частично завершенную задачу и начать другую... ... Если вы пропустите раннюю фазу разработки, ваш интерфейс может страдать от следующих проблем: Несоответствие группам пользователей Сложность в обучении Неадекватная степень гибкости Нецелостное или непредсказуемое использование разных типов окон Разработка на основе задач пользователя Итак, ваши окна пока не имеют содержания... ... Например, прорабатывая задачи для программы планирования расписаний я обнаружила, что учителя обычно создают планы уроков для нескольких предметов даже если они еще не знают в какой день и в какое время будут проходить занятия... ... Если вы не будете использовать этот подход, вы рискуете создать программу, в которой пользователи будут перемещаться от одного окна к другому для того, чтобы выполнить свою задачу... ... Если вы будете пренебрегать визуальным дизайном, ваша программа будет посылать хаотические сигналы, что приведет к увеличению ошибок, путанице и раздражению пользователя... Подробнее: http://fit-media.com/post_1205661604.htmlЕсли не хочется кусать локти
Степень соответствия запросу: 4,87%
Фрагменты текста поста : ... Команда в этом случае будет выглядеть так: xcopy c:\texts\*... ... Сама копия будет создана в папке arhiv диска F:... ... Естественно эта папка должна существовать, иначе копирование выполнено не будет... ... Перед копированием так же автоматически будет сделана очистка папки архива от старых файлов... ... Достаточно одного файла чтобы создать сколько угодно копий... ... Все они будут размещены в отдельных папках внутри архивной папки arhiv диска F:... ... Его достоинства: размер полученной копии будет в несколько раз (а иногда и в несколько десятков раз... ... Копии будем сохранять в папку f:\arhiv\ , а сам архиватор установлен в папку c:\winrar\... ... rar d:\work\prikaz В результате его работы в папке arhiv диска F: будут созданы три файла: texts... ... Зато повторные запуски будут только изменять содержимое в уже созданных архивах и поэтому время их работы будет намного меньше... Подробнее: http://fit-media.com/post_1203529769.html
