Многие веб-разработчики часто забывают или совсем не используют параметр tabindex, который определяет последовательность перехода между полями при нажатии на клавишу «Tab». Таким образом, при переходе из одного поля в другое прощелкиваются еще несколько элементов, что рано или поздно начинает уничтожать нервные клетки пользователей.
Сергей @hellohaos
User
Превентивная защита ваших и не ваших скриптов
1 min
30KНаверное не ошибусь если скажу, что очень большая часть мегахакерских_взломов основаны на закачке PHP-скрипта в каталог, доступный для записи в него файлов скриптами (0777, например). Это каталоги для заливки фотографий товаров, аватарок и т.п.
Я еще несколько лет назад «допер» до способа предотвратить на корню подобные вещи. Закачать — может и закачают, а воспользоваться не смогут. Это казалось очевидным все это время, но мало кто это реализовывает. К примеру, только в последнем патче популярного форума SMF была добавлена подобная штука.
Поэтому, для тех, кто не задумывался…
Всё просто. Во все каталоги, доступные для записи, закачиваем (или добавляем строчки к существующему) .htaccess с содержимым:
Этим самым мы отключаем PHP в данном каталоге и заставляем все скрипты отображаться как HTML.
Это можно сделать просто на всякий случай. Лишним уж точно не будет.
Разумеется, только для Apache. Если кто-то знает как подобное реализовать в IIS — напишите. :)
Я еще несколько лет назад «допер» до способа предотвратить на корню подобные вещи. Закачать — может и закачают, а воспользоваться не смогут. Это казалось очевидным все это время, но мало кто это реализовывает. К примеру, только в последнем патче популярного форума SMF была добавлена подобная штука.
Поэтому, для тех, кто не задумывался…
Всё просто. Во все каталоги, доступные для записи, закачиваем (или добавляем строчки к существующему) .htaccess с содержимым:
php_flag engine 0
AddType "text/html" .php .cgi .pl .fcgi .fpl .phtml .shtml .php2 .php3 .php4 .php5 .asp .jsp
Этим самым мы отключаем PHP в данном каталоге и заставляем все скрипты отображаться как HTML.
Это можно сделать просто на всякий случай. Лишним уж точно не будет.
Разумеется, только для Apache. Если кто-то знает как подобное реализовать в IIS — напишите. :)
+68
Определяем порядок столбцов в составном индексе
5 min
22KTranslation
Хочу поделиться простым эмпирическим методом, который я использую для определения того, в каком порядке должны идти столбцы в составном индексе. Этот способ подходит не только для MySQL, он также применим к любым СУБД, в которых используются b-tree индексы.
Давайте начнем с запроса, который возвращает пустой результат, но при этом делает полный скан таблицы. EXPLAIN покажет на нем, что нет доступных индексов (т.е. possible_keys = NULL)
Давайте начнем с запроса, который возвращает пустой результат, но при этом делает полный скан таблицы. EXPLAIN покажет на нем, что нет доступных индексов (т.е. possible_keys = NULL)
SELECT * FROM tbl
WHERE
status='waiting' AND
source='twitter' AND
no_send_before <= '2009-05-28 03:17:50' AND
tries <= 20
ORDER BY date ASC LIMIT 1;
+42
Мне кажется, я начал понимать, что ты имела в виду!
7 min
33KОпечататься дело нехитрое; опечататься в поисковом запросе так и вдвойне. Почитай все большие веб-поисковики сегодня умеют корректировать ошибки в ключевых словах во-1х и подсказывать запросы во-2х; вслед за ними того же хочется поискам поменьше. Обе штуки можно ловко реализовать при помощи открытого поисковика по кличке Sphinx; в этом посте расскажу, как конкретно.
Ну, за did you mean («что ты имела в виду») и прочий query completion («уж не Васю ли ты ищешь»).
Ну, за did you mean («что ты имела в виду») и прочий query completion («уж не Васю ли ты ищешь»).
+66
jQuery Ui.datetimepicker
1 min
32KПривет! Сегодня решил сойти с ума! Конечно родной datepicker в ui это хорошо, но когда нужно и параметр «время» – данного виджета не хватает.
Внимание! Писал все быстро, инструкцию не пишу т.к. хватает этой.
Думаю разберетесь.
Демо тут.
Внимание! Писал все быстро, инструкцию не пишу т.к. хватает этой.
Думаю разберетесь.
Демо тут.
+40
+66
Реляционный подход
1 min
1.3KОговорюсь, свою CMS я не пишу, я лишь озвучу те идеи, которые хотелось бы видеть в CMS.
Модель документа, отложенный рендеринг
+4
Как сделать favicon в png
1 min
118KЗнаете, фавикончики в ico это как-то прошлый век =) Давайте будем модными, современными и все такое. Короче, берем иконку в png (да-да, с прозрачностью и всеми делами), сохраняем в размере 16×16, на сайте (в блоке <head>, ага) подключаем так:
<link rel="icon" type="image/png" href="favicon.png" />
Особенно под впечатлением владельцы айфонов и точей, т.к. для них мы делаем красивую иконюшку размером 57×57 (можно кстати и больше, но это стандартный размер иконки на ланч-скрине), подключая ее так:
<link rel="apple-touch-icon" href="apple-touch-favicon.png"/>
Над записью витает дух уже почти сгнившего трупа IE6, который вообще не знает о чем это все, ну да и фиг с ним =) Все, изыди.
UPD: Спасибо хабраюзеру NickyX3 за интересное уточнение:
<link rel="icon" type="image/png" href="favicon.png" />
Особенно под впечатлением владельцы айфонов и точей, т.к. для них мы делаем красивую иконюшку размером 57×57 (можно кстати и больше, но это стандартный размер иконки на ланч-скрине), подключая ее так:
<link rel="apple-touch-icon" href="apple-touch-favicon.png"/>
Над записью витает дух уже почти сгнившего трупа IE6, который вообще не знает о чем это все, ну да и фиг с ним =) Все, изыди.
UPD: Спасибо хабраюзеру NickyX3 за интересное уточнение:
Автор забыл указать, что иконда для springboard тачей и яблофонов будет в таком варианте закруглена по углам и на нее будет наложен блик автоматически самоим девайсом. Для избежания этого (совсем красивая кастом иконка) вместо apple-touch-icon следует написать apple-touch-icon-precomposed.
+108
Часто задаваемые вопросы — 1
3 min
623Добавление DLE в список поддерживаемых систем вызвало бурный отклик (мною замечено порядка 5 новостей на различных про-DLE сайтах), поэтому ниже постараюсь ответить на несколько наиболее распространенных вопросов.
1. Web Optimizer платный проект?
Нет, проект (на данный момент) абсолютно бесплатный и загружаемый свободно. Есть некоторые планы по его монетизации, но они пока не озвучены (может быть, платной будет только установка для сайтов с посещаемостью более 1000 хитов в сутки, например). Если у вас есть предложения, которые позволил бы окупить качественную разработку и были бы выгодны вам лично, их можно написать в комментариях.
2. Web Optimizer от гугла?
Нет, проект разрабатывается группой активистов (прямо или косвенно связанных с webo.in). Google Code — просто хостинг для файлов и SVN, почти что narod.yandex.ru. Вы же сайты на Народе не называете проектами Яндекса, правда?
1. Web Optimizer платный проект?
Нет, проект (на данный момент) абсолютно бесплатный и загружаемый свободно. Есть некоторые планы по его монетизации, но они пока не озвучены (может быть, платной будет только установка для сайтов с посещаемостью более 1000 хитов в сутки, например). Если у вас есть предложения, которые позволил бы окупить качественную разработку и были бы выгодны вам лично, их можно написать в комментариях.
2. Web Optimizer от гугла?
Нет, проект разрабатывается группой активистов (прямо или косвенно связанных с webo.in). Google Code — просто хостинг для файлов и SVN, почти что narod.yandex.ru. Вы же сайты на Народе не называете проектами Яндекса, правда?
+29
Многоуровневое дерево с маркерами, сохраняющее состояние (HTML, CSS, jQuery, Cookies)
6 min
19KПродолжается развитие темы о многоуровневом дереве с маркерами.
Теперь дерево выросло и окрепло, стало взрослее и помнит выбранный узел и состояние кажого узла в отдельности.
Страницу можно перезагружать, а дерево все равно будет помнить все что вы открыли и выбрали!
Теперь дерево выросло и окрепло, стало взрослее и помнит выбранный узел и состояние кажого узла в отдельности.
Страницу можно перезагружать, а дерево все равно будет помнить все что вы открыли и выбрали!
+33
Пособие: Красивая и удобная выпадающая панель для входа/регистрации
2 min
3.3KTranslation
Помните мою выпадающую панель для входа/регистрации, реализованную с помощью Mootools 1.2? Я подумал, что её можно было бы улучшить как с точки зрения дизайна, так и с точки зрения функциональности, и я это сделал! Но с этого времени уже на jQuery.
+65
7 мощных каруселей изображений для Web-дизайнеров
2 min
85KTranslation
Эта статья является коллекцией некоторых мощных каруселей изображений и текстовых материалов, готовых к использованию в ваших Web-проектах. Она включает в себя Agile Carousel, YUI Carousel, JCarousel, iCarousel (jQuery + MooTools) и учебное пособие о том, как реализовать простую карусель наподобие карусели во Flickr, используя Prototype-UI.
+34
Как вовремя узнать, что ваш сервер не работает?
3 min
20KСлучается, что сайты перестают работать. Причины могут быть самые разные: в датацентре «упал» канал, сервер вырубился, кто-то что-то намудрил с базой или файлами на сервере, сисадмин неудачно обновил ПО или переносил аккаунты. Или кое-кто забыл оплатить хостинг.
В большинстве случаев такая ситуация нежелательна, а устранить ее надо как можно скорее. Для этого нужно как можно скорее узнать о случившемся. Но как? Для себя и для наших клиентов мы используем сервисы мониторинга сайтов. О них я сегодня и расскажу.
В большинстве случаев такая ситуация нежелательна, а устранить ее надо как можно скорее. Для этого нужно как можно скорее узнать о случившемся. Но как? Для себя и для наших клиентов мы используем сервисы мониторинга сайтов. О них я сегодня и расскажу.
+56
Определение размеров текста
2 min
14KВозможно, кто-нибудь из вас сталкивался с задачей в которой крайне необходимо было бы узнать размер текстового блока в пикселях.
После небольшого исследования выяснилось, что не всегда данный размер возможно получить обычными способами. Будь то методы jQuery, prototype или обычное обращение к параметрам DOM.
Хотелось бы поделится небольшой функцией, которая может сотворить чудо, и выяснить беспрекословно требуемые размеры с помощью клонирования.
После небольшого исследования выяснилось, что не всегда данный размер возможно получить обычными способами. Будь то методы jQuery, prototype или обычное обращение к параметрам DOM.
Хотелось бы поделится небольшой функцией, которая может сотворить чудо, и выяснить беспрекословно требуемые размеры с помощью клонирования.
+17
Версия 0.3.5
4 min
543Web Optimizer (Веб Оптимизатор) — приложение, автоматизирующее все действия по клиентской оптимизации для произвольного сайта. На данный момент оно существует в виде отдельного приложения (которое нужно самостоятельно установить на сайт). Приложение протестировано и установлено на таких CMS как Drupal 5 и 6, Joomla 1.0 и 1.5, Wordpress 2.7 и многих других.
Подробное руководство по установке.
Загрузить версию 0.3.5.
Загрузить мини-установщик версии 0.3.5.
Подробное руководство по установке.
Загрузить версию 0.3.5.
Загрузить мини-установщик версии 0.3.5.
+16
Основы репликации в MySQL
10 min
328KС репликацией серверов MySQL я познакомился относительно недавно, и по мере проведения разных опытов с настройкой, записывал, что у меня получалось. Когда материала набралось достаточно много, появилась идея написать эту статью. Я постарался собрать советы и решения по некоторым самым основным вопросам, с которыми я столкнулся. По ходу дела я буду давать ссылки на документацию и другие источники. Не могу претендовать на полноту описания, но надеюсь, что статья будет полезной.
+68
Жизнь во фрилансе глазами программиста
3 min
57KВот уже два с половиной месяца как я занимаюсь фрилансом, за это время накопился опыт, которым хочу поделиться с общественностью.
Вначале нужно как можно большими способами давать знать о том, что вы ищете заказы: говорить знакомым, родственникам, бывшим коллегам, заказчикам бывших коллег, публиковать в социальных сетях, специализированных веб-сайтах. Я подал более двадцати заявок на таких сайтах, прежде чем сработала хотя бы одна. Пару недель это у вас займёт.
Вход
Вначале нужно как можно большими способами давать знать о том, что вы ищете заказы: говорить знакомым, родственникам, бывшим коллегам, заказчикам бывших коллег, публиковать в социальных сетях, специализированных веб-сайтах. Я подал более двадцати заявок на таких сайтах, прежде чем сработала хотя бы одна. Пару недель это у вас займёт.
Трудности
+113
Закрепляем jQuery — 25 отличных советов
19 min
168KTranslation
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.
Далее все написано от имени автора оригинальной статьи.
jQuery прекрасен. Я использую его вот уже почти год и, хотя я и был достаточно впечатлен в самом начале, он нравится мне все больше и больше по мере использования и по мере того, как я узнаю о том, как он устроен внутри.
Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).
Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.
Далее все написано от имени автора оригинальной статьи.
Введение
jQuery прекрасен. Я использую его вот уже почти год и, хотя я и был достаточно впечатлен в самом начале, он нравится мне все больше и больше по мере использования и по мере того, как я узнаю о том, как он устроен внутри.
Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).
Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.
Содержание
- Загружайте фреймворк с Google Code
- Используйте «шпаргалку» (cheat sheet)
- Соединяйте все ваши скрипты и уменьшайте размер файла
- Используйте возможности Firebug для ведения логов
- Минимизируйте операции выборки в пользу кэширования
- Сводите манипуляции с DOM-деревом к минимуму
- Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
- Используйте «id» вместо классов, где это возможно
- Задайте контекст своим селекторам
- Используйте последовательности вызовов методов с умом
- Научитесь правильно использовать анимацию
- Научитесь назначать и делегировать события
- Используйте классы для сохранения состояния
- Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
- Пишите собственные селекторы
- Подготавливайте HTML и модифицируйте его, когда страница загружена
- Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
- Используйте служебные функции jQuery
- Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
- Как узнать что картинки загружены?
- Всегда используйте последнюю версию
- Как проверить, что элемент существует?
- Добавляйте класс «JS» в элемент «html»
- Возвращайте «false» для отмены поведения по-умолчанию
- Короткая запись для события готовности документа
+176
Файловый менеджер для FCKeditor — FCKfsys 2.0 (PHP)
2 min
2.6KЭта статья продолжение первого варианта файлового менеджера.
FCKfsys — файловый менеджер для визуального редактора для web FCKeditor. Мне в FCKeditor все нравится, кроме файлового менеджера. Так что надо както исправлять это самому.
Подробная информация о плагине на моем сайте и там же можете посмотреть пример работы.
Выглядит файловый менеджер с превьюшками:
UPD: Доработки сделаны, теперь надо над интерфейсом поработать. По моему ориентир должен быть на Windows-проводник, чтобы было привычно. То есть немного причесать надо.
FCKfsys — файловый менеджер для визуального редактора для web FCKeditor. Мне в FCKeditor все нравится, кроме файлового менеджера. Так что надо както исправлять это самому.
Подробная информация о плагине на моем сайте и там же можете посмотреть пример работы.
Выглядит файловый менеджер с превьюшками:
UPD: Доработки сделаны, теперь надо над интерфейсом поработать. По моему ориентир должен быть на Windows-проводник, чтобы было привычно. То есть немного причесать надо.
+39
Защита от DDos. Простой, но эффективный скрипт
1 min
32KНедавно озаботился поиском адекватного решения для защиты некоторых подконтрольных ресурсов от DDos атак.
Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов.
После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS-Deflate
Первое что посоветовали — Cisco Guard. Но так как требовалось что то легкое и не столь дорогое, то решил посмотреть в сторону софтверных продуктов.
После непродолжительного гугления наткнулся на небольшой скриптик (D)DoS-Deflate
+82
Information
- Rating
- Does not participate
- Date of birth
- Registered
- Activity