В этом руководстве Вы узнаете, как построить простую систему по архитектуре MVC (Model-View-Controller, Модель-Отображение-Контроллер) на PHP 5.1 с использованием возможностей библиотеки SPL (Standard PHP Library, Стандартная Библиотека PHP).
Доброго времени суток, уважаемые хабровчане!
Я хочу рассказать вам об относительно новом и интересном, на мой взгляд, механизме атаки на отказ в обслуживании — Slow HTTP POST.
Поиск показал отсутствие на хабре информации по теме, что несколько удивило меня, и я решил восполнить это досадное упущение. Тема не нова, но, как показали мои небольшие исследования, более чем актуальна. Забегая вперед, скажу, что полученные мной результаты позволяют говорить о существовании широко доступной технологии, позволяющей с одного компьютера с небольшим каналом «укладывать» небольшие и средние сайты, а при использовании нескольких машин с повсеместно распространенным сейчас скоростным доступом в Интернет причинить немало проблем и более серьезным проектам. Всех заинтересовавшихся покорнейше прошу пожаловать под хабракат.
Да, инструменты для создания CSS спрайтов существуют. Я даже сделал один такой сервис. Но они время от времени ломаются (как сейчас, мой). Но и командная многого стоит, и imagemagick. Давайте посмотрим, как мы можем создавать CSS спрайты только из командной строки.
Создание картинки
Начнем с того, что у нас есть список отдельных файлов:
Постановка задачи — ключ к успеху любой работы. Если задача не поставлена чётко, то невозможно даже понять, решена ли она.
Мы предлагаем алгоритм оценки задачи до начала разработки сайта, неоднократно обкатанный и написанный кровью менеджеров. Мы уверены, что этот алгоритм сэкономит вам массу времени, денег и нервов.
Перевод отличной статейки. Думаю, будет полезна как новичкам, которые только приступили к использованию jQuery, так и тем, кто уже какое-то время с ним работает. А кого-то, возможно, заставит глянуть эту чудесную библиотечку. Многие советы имеют отношение не только к jQuery, но и к JavaScript в целом. Лично для меня была весьма и весьма познавательной, посему и захотелось донести это «до масс». Перевод не дословный, но передающий смысл и максимально адаптированный к русскому языку.
Далее все написано от имени автора оригинальной статьи.
Введение
jQuery прекрасен. Я использую его вот уже почти год и, хотя я и был достаточно впечатлен в самом начале, он нравится мне все больше и больше по мере использования и по мере того, как я узнаю о том, как он устроен внутри.
Я не эксперт в jQuery. И даже не претендую, поэтому, если встретите ошибки, смело поправляйте меня и вносите предложения по улучшению (поправлять и присылать поправки нужно автору статьи, а не перевода — зам. пер.).
Я называю себя «среднестатистическим» пользователем jQuery и я думаю, что всем остальным будет интересно почитать и что-нибудь почерпнуть из «фишек», «трюков» и техник, которые я освоил за последний год. Статья получилась куда длиннее, чем я предполагал изначально, так что в самом начале я привел «содержание» для более удобной навигации и возможности при желании пропустить не интересующие моменты.
Содержание
Загружайте фреймворк с Google Code
Используйте «шпаргалку» (cheat sheet)
Соединяйте все ваши скрипты и уменьшайте размер файла
Используйте возможности Firebug для ведения логов
Минимизируйте операции выборки в пользу кэширования
Сводите манипуляции с DOM-деревом к минимуму
Оборачивайте все в единый элемент, когда речь идет о любой вставке в DOM
Используйте «id» вместо классов, где это возможно
Задайте контекст своим селекторам
Используйте последовательности вызовов методов с умом
Научитесь правильно использовать анимацию
Научитесь назначать и делегировать события
Используйте классы для сохранения состояния
Еще лучше — используйте встроенный в jQuery метод data() для сохранения состояния
Пишите собственные селекторы
Подготавливайте HTML и модифицируйте его, когда страница загружена
Используйте «отложенную загрузку» (lazy loading) для определенного контента для выигрыша в общей скорости и преимуществ для SEO
Используйте служебные функции jQuery
Используйте «noconflict» для переименования глобального объекта «jquery», когда используете его с другими фреймворками
Как узнать что картинки загружены?
Всегда используйте последнюю версию
Как проверить, что элемент существует?
Добавляйте класс «JS» в элемент «html»
Возвращайте «false» для отмены поведения по-умолчанию
С огромным интересом посмотрел статьи, посвященные ИТ-аутсорсингу, которые размещены на хабре.
Как владелец не большой аутсорсинговой компании, позволю себе выразить свое мнение по поводу плюсов и минусов данного явления. Рассказать с какими трудностями приходится сталкиваться при работе в этой сфере, и как их можно избежать.
Сразу хочется сказать, что я не хочу останавливаться на теоретических аспектах построения ИТ-систем (ITIL, ITSM). В них описываются стандарты и подходы, к которым необходимо стремиться (что я стараюсь делать изо всех сил), но которые на практике не совсем все удается реализовать
Прежде всего, хочется отметить совершенно расплывчатое понимание самого термина в реальной жизни. ИТ-аутсорсингом почему-то стали называть все, что непосредственно так или иначе связано с услугами в ИТ-сфере. Что есть в корне не правильно, и вызывает завышенные ожидания, путаницу, и в итоге поток негатива к аутсорсингу, как к явлению.
Аутсорсинг — это ОТВЕТСТВЕННОСТЬ ЗА ПРОЦЕСС, которую берет на себя сторонний подрядчик.
Именно процесс целиком. ИТ-аутсорсинг — соответственно ответственность за ИТ-процессы компании-клиента. Процесс — упорядоченный и регламентированный набор действий для достижения поставленных целей. Если ИТ-процессов нет, или они не четкие — задача аутсорсера создать или нормализовать их. Как мне всегда казалось, и в чем я убеждаюсь сейчас — только такой подход «полной ответственности за процесс» даст возможности аутсорсеру получить максимальную прибыль и верных клиентов.
На практике мы наблюдаем ряд услуг, которые предлагают решить только часть проблем в поддержании работоспособности ИТ-систем. Я осмелюсь их классифицировать и дать свою оценку.
Для затравки и предметного обсуждения нужна точка отсчета. В шаблонизаторе нас интересуют поддерживаемые типы конструкций, способ их обрамления, какие-то возможности (препросмотр без компиляции).
Основные типы конструкций для управления выводом в шаблоне:
Переменные.
Условные операторы.
Операторы циклов.
Инклуды, блоки.
Наследование.
Уже этих конструкций с лихвой достаточно, чтобы реализовать большинство проектов. И само собой мы их видим почти в каждом шаблонизаторе, с теми или иными отличиями и особенностями. Но давайте поразмыслим, какие в теории возможности они должны позволять использовать, и как эти реализации должны выглядеть в идеале.