Pull to refresh
63
0
Александр @Treg

CTO

Send message

Шпаргалка: кеширование картинок, CSS и JS в NGINX

Reading time1 min
Views78K
Заметка для тех, кто не специалист в NGINX, а проблему нужно решить быстро.

Допустим, у вас на сервере стоит NGINX и вы хотите, чтобы вся статика кешировалась у клиента. В конфиге хоста NGINX пропишите это:

server {
listen 80;
server_name mysite.com;
...
# Задаем правила обработки статического контента (типов файлов можно поставить и больше)
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
root /path/to/document/root/; # Путь к корню вашего сайта
access_log off; # не пишем логи
expires 3d; # кешируем у клиента на 3 дня
}
}

Проверить можно в FireBug во вкладке NET: обновите страницу 2 раза и посмотрите код ответа. Если 200 ОК, то не работает. Если 304 Not Modified, то работает.

Неплохо ускоряет работу сайта.
Total votes 87: ↑52 and ↓35+17
Comments30

Windows Aero эффект на чистом HTML+CSS+JS

Reading time1 min
Views7.5K
Вдогонку к посту «jQuery → Впечатляющие анимационные эффекты» решил показать свою поделку, созданную скорее для развлечения, а не для реального внедрения. Я попытался сделать эффект размытия заднего фона как в Windows Aero.



Вот пример, вместе с картинками весит 200 Кб. Довольно много.

Следующий шаг — использовать одну картинку для заднего фона, а размывать с помощью SVG. Пример с SVG почему-то работает только в Опере (как написано в комментариях, в других браузерах тоже работает) и грузит процессор на 100%.

Вывод: с помощью существующих технологий этот эффект реализовать можно, но либо картинки будут много весить, либо процессор будет загружен на все сто. До реального внедрения ещё далеко, но может быть кто-то знает более изящное решение?
Total votes 36: ↑31 and ↓5+26
Comments22

Впечатляющие анимационные эффекты

Reading time2 min
Views115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →
Total votes 262: ↑246 and ↓16+230
Comments78

Авторизация через ВКонтакте

Reading time2 min
Views62K
Сколько процентов пользователей вашего сайта являются также пользователями ВКонтакте? Как по вашему, сколько человек ничего не пишут / комментируют / добавляют (нужное подчеркнуть), лишь потому, что им лень регистрироваться на еще одном непонятном сайте в 100й раз? Предлагаю ответить для себя на эти 2 вопроса, прежде, чем ругать ВКонтакте и Open API.

В моем случае на сайт из ВКонтакте каждый день приходят около 1500 человек и обеспечить им простой и удобный способ регистрации, как мне кажется, является моим долгом.

Вряд ли я открою что то новое, но если, хотя бы еще 1 сайт станет немного удобнее после этой статьи — значит я не зря потратил свое время на написание этого текста.
Читать дальше →
Total votes 145: ↑100 and ↓45+55
Comments79

Ввоз и монтаж оборудования в дата-центре

Reading time2 min
Views25K
Как мы и обещали, переходим от повествования о строительстве дата-центра к более предметным областям. Сегодня мы расскажем и покажем, как происходит ввоз, регистрация и монтаж клиентского оборудования в дата-центр. В принципе, здесь нет ничего удивительного, или захватывающего, но тем, кто интересуется вопросами типа «как же там все устроено», наверняка будет интересно.

image

Читать дальше →
Total votes 145: ↑132 and ↓13+119
Comments154

Air Hockey у вас дома

Reading time5 min
Views19K
Доброго времени суток, Хабравчане :)

Сегодня, прийдя в очередной раз из любимого бара, появилась идея сделать домашний стол для игры в Аэро-хоккей. Побродив по интернету, наткнулся на достаточно хорошую инструкцию по изготовлению того самого стола. Хочу представить Вам перевод этой статьи.
image
Под катом много текста и фото.
Читать дальше →
Total votes 105: ↑92 and ↓13+79
Comments68

Мои плагины для Smarty

Reading time7 min
Views4.1K
Недавно в блоге PHP пролетала статья про наследование шаблонов в Smarty, которая навела меня на мысль: я уже на протяжении нескольких лет использую Smarty в качестве основного шаблонизатора и у меня накопилось множество написанных мною плагинов для расширения базового функционала. Почему бы не поделиться с сообществом своими наработками и послушать других? Я думаю, у многих есть чем поделиться по этой теме…
Читать дальше →
Total votes 41: ↑29 and ↓12+17
Comments21

Развитие объектного мышления у студентов

Reading time2 min
Views13K
Всем привет.

Давно перед преподавателями стоит задача научить студентов мыслить объектно. Задача сложная. Объяснить такие вещи трудно, можно только попробовать показать это на примерах. Да и то, примеры эти, чаще всего не дают представления о том, чего же хочет преподаватель.

Сегодня на ленте предложил студентам второго курса интересную задачку на развитие объектного мышления. Подробности дальше.
Читать дальше →
Total votes 135: ↑115 and ↓20+95
Comments107

Делаем сайт своей компании

Reading time2 min
Views1.7K
Год назад мы с stervec решили сменить работу. Одним октябрьским вечером мы встретились на кухне девятиэтажного дома и начали воспитывать свое новое детище (старое, кстати, не умерло, а просто спит).
Назвались — «Девять утра», а заниматься решили интернет-проектами и делать сайты для клёвых компаний нашего региона (для не клёвых сначала не делали).
Ох, через что нам пришлось пройти и сколько открытий сделать — стыд и позор, но об этом отдельный сказ. Сегодня мы хотим рассказать, в чем была наша основная ошибка.
Читать дальше →
Total votes 70: ↑53 and ↓17+36
Comments136

Мое дело — Онлайн-бухгалтерия для индивидуальных предпринимателей

Reading time2 min
Views3.8K


Привет!

Хочу представить разработанный нами сервис для ведения бухгалтерии индивидуальных предпринимателей, с генерацией всего пакета отчетности, счетов для заказчиков и актов о выполненных работах.

Нашей целью было сделать бухгалтерию доступной для любого человека — поэтому мы сконцентрировались на небольшом сегменте рынка — индивидуальные предприниматели на 6%-ной упрощенке, работающие без кассы. Это позволило сделать сервис очень простым и понятным — без бухгалтерского лексикона, ссылок на нормативные акты и перегрузки ненужной информацией вроде расчета НДС, ЕНВД итд. И, я думаю, у нас это неплохо получилось.

Читать дальше →
Total votes 158: ↑151 and ↓7+144
Comments231

mod_rewrite: Просмотр списка правил только один раз

Reading time1 min
Views6.7K
С mod_rewrite есть одна проблема, об которую набиты уже наверное 15 миллионов шишек: он просматривает список правил снова и снова, пока URL удается хоть как-то изменить.

Очень часто получаеются и бесконечные циклы(например добавление расширения — оно добавляется снова и снова, если специально регэкспом не ограничить), над которыми с непривычки приходится поломать голову. Все надежды на модификатор [L] тщетны — он лишь сразу запускает следующую иттерацию обработки. Да и без бесконечного цикла лишние иттерации скорости работы не добавляют :-)

Хочу поделится достаточно простым и универсальным средством борьбы с такой особенностью, который обнаружил только-что :-)

Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments21

Удобная сводка автомобильной информации

Reading time1 min
Views696
Привет, друзья!
С тех пор как я приобрел автомобиль, я стал интересоваться околоавтомобильной жизнью,
посещать тематические ресурсы, следить за автоновостями. Словом, присоединился к общине :)
Тогда же я для себя отметил, что мне приходится получать автоинформацию из совершенно разных источников, которые было бы ну очень удобно объединить. Так возникла идея создания хорошего агрегатора автомобильной информации.
Читать дальше →
Total votes 23: ↑16 and ↓7+9
Comments18

VS wizard: PHP extension

Reading time1 min
Views2K
Около месяца назад экспериментировали с написанием экстеншенов и столкнулись с реальной проблемой: если в *nix разработка проста и прозрачна, то в винде можно огрести стразу куеву хучу гемора, причем решение далеко не очевидно.

Как известно, php <=5.2 собирают с помощью музейных версий VC, попытки же собрать версиями 7-9 были обречены на неудачу: либо не собиралось, либо падало в процессе работы.
В 5.3 версии разработчики сделали возможность собрать PHP при помощи VS 2008, так что эта проблема решена. Но… собирать экстешнены гораздо проще. Даже новыми версиями VC под PHP <= 5.2.
Мы сделали решение, простое и прозрачное, которое в пару кликов мыши создаст проект под VS 2008(ориентировались на standard+ версии).
Если вы знакомы с разработкой расширений, качайте наш визард и собирайте под винду без проблем.
А если не знакомы — то ждите завтра-послезавтра статью, черновой вариант дописан.
Итак, качайте PHP extension. Он снабжен установщиком, так что проблем не возникнет ;)
Total votes 17: ↑10 and ↓7+3
Comments11

Какие бывают META теги и зачем они нужны

Reading time7 min
Views265K

META-теги


В продолжении первого поста про DOCTYPE, я, как и обещал, продолжу про META теги. 
META-теги — это необязательные атрибуты, размещенные в заголовке страницы, которые могут содержать ее описание, ключевые слова к ней, информацию об авторе, управляющие команды для броузера и поисковых роботов, и прочую служебную информацию, не предназначенную для посетителей.
 

META-теги имеют два возможных атрибута


— <META HTTP-EQUIV="имя" CONTENT="содержимое">
— <META NAME="имя" CONTENT="содержимое">
META-теги должны находиться в заголовке HTML-документа между <HEAD> и </HEAD> (особенно это важно для документов, использующих фреймы).

Стандартом HTML 4.01 значения и имена мета-тегов НЕ оговариваются, поэтому мы будем рассматривать те значения, которые уже устоялись в интернете и используются чаще других.
подробнее о META тегах
Total votes 118: ↑89 and ↓29+60
Comments47

Почему важен DOCTYPE и как его правильно использовать

Reading time7 min
Views132K
Решил проводить регулярные лекции и практические занятия со своими сотрудниками по программированию на PHP, MySQL, Javascript. А также другим технологиям необходимым для выпуска качественных сайтов. Начать решил с самого «верха», с HTML тэгов. Буду рад, любым комментариям :)
Сразу оговорюсь, что бОльшая часть информации я нашел в интернете, внизу статьи будут приведены ссылки на источники. Часть информации была переведена совместно с google translate.
Итак:

Почему так важен DOCTYPE



Вроде бы вы сделали все правильно, но ваш сайт почему-то не выглядит или не работает, как ожидалось, в последних версиях броузеров.
Вы написали правильный стандартный XHTML код и стандартный CSS. Вы воспользовались стандартной спецификацией для работы с DOM (Document Object Model), чтобы управлять динамическими элементами на странице. И все-таки, в броузерах, которые казалось бы сделаны с соблюдением именно этих стандартов, ваш сайт не работает. Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Эта небольшая статья расскажет вам о заголовках DOCTYPE, которые работают, а также объяснит практическое и теоретическое значение этого, казалось бы отвлеченного от реальности, тега.
Читать дальше
Total votes 180: ↑128 and ↓52+76
Comments95

Кластеризация memcached и выбор ключа кэширования

Reading time4 min
Views24K
Серия постов под общим заглавием “Web, кэширование и memcached” продолжается. В первом мы поговорили о memcached, его архитектуре и возможном применении.

Сегодня речь пойдет о:
  • выборе ключа кэширования;
  • кластеризации memcached и алгоритмах распределения ключей.

Следующий пост будет посвящен атомарности операций и счетчикам в memcached.

Итак, поехали!
Total votes 61: ↑61 and ↓0+61
Comments42

Индексы в MySQL: многоколоночные индексы против комбинированных индексов

Reading time9 min
Views120K
Я часто вижу ошибки, связанные с созданием индексов в MySQL. Многие разработчики (и не только новички в MySQL) создают много индексов на тех колонках, которые будут использовать в выборках, и считают это оптимальной стратегией. Например, если мне нужно выполнить запрос типа AGE=18 AND STATE='CA', то многие люди просто создадут 2 отдельных индекса на колонках AGE и STATE.

Намного лучшей (здесь и далее прим. переводчика: а обычно и единственной верной) стратегией является создание комбинированного индекса вида (AGE,STATE). Давайте рассмотрим почему это так.

Читать дальше →
Total votes 74: ↑58 and ↓16+42
Comments57

Список полезных PHP классов и библиотек

Reading time4 min
Views65K

Email


  • Swift Mailer
    Swift Mailer легко интегрируется в любое PHP-приложение. Это гибкий и элегантный ООП-подход к отправке писем с множеством функций: отправка эл.почты, используя SMTP, SendMail, Postfix, поддержка серверов и др.
  • PHPMailer
    Лучший класс для работы с эл. почтой. Поддерживает сообщения в цифровой форме, S/MIME шифрование, текстовые и HTML-письма, изображения, поддерживает несколько Email’ов, SMTP-аутентификация.

Читать дальше →
Total votes 175: ↑145 and ↓30+115
Comments75

Три интересные задачи на знание SQL

Reading time4 min
Views30K
image

Буквально несколько часов назад, после внимательного изучения комментариев вот к этому топику я был несколько удивлен что многие не очень любят использовать условия HAVING и похоже другие возможности СУБД. Скажу прямо — мне очень понравилась обсуждение простейшего и не работающего запроса, в результате которого многие узнали для себя много нового и познавательного (это мое личное мнение). Поэтому я решил сделать вот что — вывести три моих самых любимых задачи по знанию SQL (MySQL) на суд общественности.

Данные задачи абсолютно реальные, и в отдаленном светлом прошлом действительно имели место, и были благополучно решены жертвой некоторого количества рабочего времени и нервных клеток. Я уверен на 100% что они актуальны и по сей день, и будут актуальны еще долго. Сложными их назвать нельзя, но и очень простыми тоже (в зависимости от уровня подготовки конечно).

Читать дальше →
Total votes 62: ↑43 and ↓19+24
Comments82

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity