Search
Write a publication
Pull to refresh
114
0
Протько Сергей @Fesor

Full-stack developer

Send message

Сборник советов и фактов по оптимизации PHP-скриптов

Reading time9 min
Views45K
image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать дальше →

Инструменты для дизайнеров и разработчиков

Reading time2 min
Views4.8K


Предлагаю ознакомиться с небольшим набором инструментов для веб-разработки, которые могут сделать вашу жизнь проще. Все сервисы бесплатны и просты в использовании, но (как обычно) есть и минус – они все на английском, хотя когда и кого это останавливало?)

Смотрим

Начало пути — Часть 6. Основы сведения и мастеринга.

Reading time6 min
Views249K
Вот, с грехом пополам, мы и добрались до финальной статьи. Она будет про сведение и мастеринг. Первым делом поясню чем сведение отличается от мастеринга, расскажу немного про такую штуку как SideChain и еще парочку трюков. В конце — небольшая таблица, которая до сих пор помогает мне при эквализации.
Читать дальше →

Кто там про трёхмерное порно спрашивал?

Reading time1 min
Views4.6K

– Мы начали съемки в 3D ещё прошлым летом. Уже инвестированы большие средства в производство 3D продукции высокого качества. Marc Bell, CEO of Penthouse

Ну вот и дождались. Будущее почти наступило. Если быть более точным, то НАСТУПИТ уже во втором квартале этого года, когда Пентхаус запустит первый трёхмерный порноканал*. Вот такие новости, ребята!

Пруфы тут.

* – Тут надо сделать небольшое уточнение. Дело не в том, что именно порно теперь будет в т.н. 3D (это уже давно было на DVD), а в том, что появится первый ТЕЛЕКАНАЛ в т.н. 3D. А там уж, наверное, и про птичек и зверюшек появятся.

P.S. Да, перед вами ещё один долго-думал-в-какой-блог-публиковать.

Капканы веб-разработки или веб- разработка в удовольствие

Reading time3 min
Views1.6K

Завязка


Хочу поднять тему, актуальную для разработчиков и для заказчиков: разработка в удовольствие. Что это, миф или реальность? Существуют ли компании, в которых процесс разработки поставлен так, что приносит удовольствие обеим сторонам: разработчику и заказчику. Ведь в конечном итоге цель у обеих сторон одна — удовлетворенность конечным продуктом.
Читать дальше →

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

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



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

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

Вывод: с помощью существующих технологий этот эффект реализовать можно, но либо картинки будут много весить, либо процессор будет загружен на все сто. До реального внедрения ещё далеко, но может быть кто-то знает более изящное решение?

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

Reading time2 min
Views115K
С появлением jQuery, у веб-программистов появилась возможность создавать впечатляющие визуальные эффекты, не прибегая к использованию технологии flash. В данной статье представлено несколько ярких примеров того, каких потрясающих результатов можно достичь, используя стандартные средства браузера и свое воображение.
Читать дальше →

Начинаем работать с Drupal: полное практическое руководство (часть 1)

Reading time17 min
Views206K
Здравствуйте!

Выношу на суд хабраобщества перевод замечательной статьи Getting Started with Drupal: A Comprehensive Hands-On Guide. Данный материал является незаменимым руководством для начинающих друпальщиков, поскольку в нем рассматриваются не только установка и базовые принципы, но и два из «трех китов» Друпал-сайтостроения — Views и CCK. Самое приятное, что вся статья посвящена практическому созданию полезного сайта (доски объявлений). Право, во времена Друпала 4.7, когда я только начинал с ним знакомиться, о таких подробных и внятных руководствах можно было только мечтать.
Читать дальше →

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

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

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

Сегодня на ленте предложил студентам второго курса интересную задачку на развитие объектного мышления. Подробности дальше.
Читать дальше →

Двунаправленный асинхронный обмен данными в веб-приложениях

Reading time4 min
Views21K
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изощренным уловкам. Спасибо Алексу Расселу (Alex Russell) из Dojo, у нас есть даже имя для подобной техники – Comet.
Читать дальше →

Thick As Brick – простейший html шаблон для верстки

Reading time2 min
Views14K
Я почему вредный был?
Потому что у меня велосипеда не было!
Мультфильм «Трое из Простоквашино»


Когда десять раз делаешь одно и то же, на одиннадцатый раз ты волей-неволей начинаешь задумываться о том, как бы процесс оптимизировать. Так и с версткой: после десятка сверстанных страниц хочется слегка упростить свою задачу. Тут на помощь, конечно же, приходят разнообразные фреймворки (чего только стоит oocss или наикрутейший CSS-фреймворк от Яндекса или целая куча других не менее интересных фреймворков). Пригодятся и системы сборки (Ant стоит на службе у студии Артемия Лебедева, да и я потихоньку постигаю его Дао). Не стоит забывать и различные хаки и шаблоны лейаутов, коих в интернете бесчисленное множество.

Однако как быть с сайтом, для которого надо сверстать пару-тройку типичных страниц? Нет смысла тащить с собой кучу лишнего CSS-кода. Кроме того, многим верстальщикам гораздо проще написать качественный код с нуля, чем перегружать кучу заранее объявленных бесполезных классов. Что делать?

Чтобы решить эту высосанную из пальца нетривиальную задачу я написал простейший шаблон для верстки, который сильно облегчил мне работу над проектами. Шаблон примитивен и прост (потому так и зовется), на звание фреймворка ни в коем случае не претендует (минус в карму тому, кто обзовет его фреймворком! ;) ). Он несет в себе заранее объявленные CSS-классы для работы с меню, списками, формами, ресеты основных тегов (вроде сброса отступов у форм и правильных отступов у <p>) и еще кое-какие полезные для меня вкусности.

Читать дальше →

Знай откуда пришел пользователь

Reading time2 min
Views18K
Когда вы открываете свой проект вы начинаете писать о нем везде, в том числе и на хабре.

Сервисы статистики типа Google Analytics дадут вам общую оценку трафика, а именно сколько посетителей пришло с какого ресурса. Можно настроить цели(goals) и отследить регистрации или покупки, но этого часто бывает недостаточно.

А что если вам нужна статистика о том откуда идут более активные пользователи или пользователи которые создали больше всего тем на форуме за какой-то промежуток времени, или сделали больше всего покупок в вашем интернет магазине. Вариантов может быть много и такие данные сервисы аналитики уже дать нет смогут.

Читать дальше →

Highcharts: Красивые, динамические чарты за 5 минут!

Reading time2 min
Views67K
image
Highcharts — библиотека для создания чартов написанная на JavaScript, позволяет легко добавлять интерактивные, анимированные графики на сайт или в веб-приложение. На данный момент чарты поддерживают большое количество диаграмм линейных, круговых, колоночных рассеивающих и многих других типов.

Чарты работают со всеми популярными браузерами, включая Safari на iPhone.
Минимальная версия для IE составляет 6+. Также браузеры поддерживающие Canvas элемент, и в некоторых случаях SVG для графического рендеринга.
Читать дальше →

Использование составных ключей для манипуляции данными в memcached

Reading time7 min
Views3.3K
Часто, при работе с memcached, возникает ситуация, когда необходимо удалить данные в самых различных местах. Например, при добавлении нового комментария, необходимо обновить не только кеш самих комментариев этой страницы, но и ленты комментариев на главной странице, списока комментариев пользователя, счетчика комментариев пользователя, общего счетчика комментариев сайта, счетчика комментариев статьи и т.д. Можно запомнить все ключи этих данных и множество раз вызвать delete() с этими ключами.

<?php
$cache->delete('comments_art123');
$cache->delete('comments_tape');
$cache->delete('comments_user123');
$cache->delete('comments_counters_art123');
$cache->delete('comments_counters_user123');
......
?>


* This source code was highlighted with Source Code Highlighter.


Как известно, memсached хранит данные плоско, то есть одному ключу соответствует всегда одно значение. Вложенных ключей не существует. Так же нет возможности удалить группу ключей, скажем по маске. Хорошо бы было, если бы можно было сделать, например, так: $cache->delete('comments*'); Но так нельзя.

Но если нельзя, но очень хочется, то можно ;)
Читать дальше →

RTM Context Autocomplete Menu

Reading time5 min
Views2K
Однажды я зашел на rememberthemilk.com и понял, что хочу такое же контекстное autocomplete меню в свой проект. В результате получился небольшой jquery плагин, который хочу презентовать в этом посте. Работает в ie6+, opera, safari, firefox, chrome (тестировал в последних версиях). В кратце расскажу в чем суть «контекстного» меню в RTM-стиле.

Это меню присоединяется к input-элементу, но, в отличие от обычных autocomplete меню, оно «всплывает» не для ввода всего значения элемента, а для какой-то логической части поля ввода. При этом меню позиционируется непосредственно под автодополняемым текстом. Вот как это выглядит:

image

Лицензия проекта — MIT / beerware.
Скачать библиотеку с примерами можно тут: js-context-autocomplete.googlecode.com/files/js-autocomplete-v5.tar
Последнюю ревизию забираем тут: svn checkout js-context-autocomplete.googlecode.com/svn/trunk js-context-autocomplete-read-only
Кому интересно поучаствовать в проекте — пишите в личку.
Временное online-demo (upd)

Под катом интересные моменты реализации, описание функциональности, примеры, список известных багов и фич для реализации.
Читать дальше →

Где наша бизнес-логика, сынок?

Reading time18 min
Views84K
Спасибо небу за то, что в субботу шел дождь, и я это прочитал (а вы скажите спасибо за то, что перевел). В воскресенье, однако, светило солнце и форматирование текста было отложено.

Отдельное спасибо автору, за разрешение отдельной публикации.

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

не поддайся темной стороне силы usernаme

Верстка повторяющихся блоков

Reading time3 min
Views14K
Довольно часто при верстке сайта возникает необходимость размещать блоки одинаковой ширины, но разной высоты в контейнере с переменной шириной (читай резиновом). Плюс на этот список может применяться фильтр, который JS-ом скрывает или показывает элементы списка, при этом он не должен разрушать «строки», верстку, или образовывать дыры, поэтому решения на таблицах не катят сразу. Простейший пример — каталог товаров:


Читать дальше →

Плейсхолдер

Reading time2 min
Views8.5K
Хоть в HTML5 и есть атрибут placeholder, но он пока-что работает лишь в браузерах с движком webkit.

Посмотрев некоторые посты на хабре, я увидел, что кое-кто изобретал велосипед, а другой скрипт, который якобы и делает сей атрибут кроссбраузерным, в полях типа password показывает звёздочки.

Собственно и написал скромный код на jQuery, который это всё дело и поддерживает.
Читать дальше →

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity