Pull to refresh
13
0
Игорь Свист @silverwind

User

Send message

Разгоняем картинки: PNG вместо GIF

Reading time2 min
Views6.2K
Примечание: ниже приведен перевод статьи «Replace GIF with PNG Images» о том, в каких случаях стоит использовать PNG-формат вместо GIF. Мои комментарии далее курсивом.

Введение



Переносимый сетевой графический формат (Portable Network Graphics, PNG) разрабатывается как более эффективная, гибкая и свободная от патентов замена GIF-формату. PNG был задуман для хранения отдельных растровых изображений для дальнейшего распространения по компьютерным сетям (1). PNG был создан в 1995 в ответ на давление со стороны Unisys и их патента на алгоритм LZW-сжатия, используемый в GIF. Хотя срок действия патента Unisys уже закончился, причины на переход от GIF к PNG остались, практически, прежними (2). Заменив ваши GIF-изображения теми же самыми, но в формате PNG, вы можете ускорить загрузку ваших страниц и сэкономить трафик ваших пользователей.

PNG против GIF: алгоритмы сжатия



PNG использует алгоритм deflate-сжатия обычно с 32Кб скользящим (sliding) окном. Deflate является улучшенной версией алгоритма сжатия Lempel-Ziv (LZ77), который используется в ZIP- и GZIP-файлах (3, 4). Созданный Phil Katz для второй версии PKZip, deflate совмещает LZ77 с кодированием Huffman и является от 10% до 30% более эффективным, чем LZW при сжатии без потери информации. Так же, как и GZIP, некоторые инструменты по PNG-сжатию предполагают опциональный параметр «степень сжатия», которая варьируется от 1 до 9. По умолчанию выставляется 6. 9 является практически всегда лучшим выбором для максимального сжатия.

Не удивительно, что изображения, сохраненные как PNG, обычно от 10% до 30% меньше, чем GIF, хотя в некоторых редких случаях они могут быть больше по размеру (5, 6). В нашем тестировании мы обнаружили, что часть картинок могут быть сжаты от 40% до 50% или даже больше (до 85% для одного примера), в зависимости от изображения. По большей части изображения с большими однотонными областями сжимаются лучше, чем градиентные с большим количеством переходов между цветами.

читать дальше на webo.in →

Иногда они возвращаются… снова

Reading time6 min
Views3.9K
Совсем недавно на хабре пользователем bur был опубликован пост про приятные ползунки TrackBar. Они мне понравились своей простотой и возможностью их использования в совокупности с jQuery. Чуть позже был так же пост про слайдер, который определял диапазон времени, но его порицали за большой вес и «тяжесть». Тогда у меня и родилась идея создать на основе TrackBar ползунков для выбора произвольного диапазона времени. Придумано – сделано. И сейчас я представляю свои наработки хабраобщественности.

Итак, было:

Стало:


Прочитать про это

Web 2.0, встречай JavaScript 2.0!

Reading time2 min
Views5.1K
Несмотря на то, что работа над спецификацией JavaScript 2.0 еще не закончена, обзор новых возможностей уже доступен в формате PDF. Разработчики надеются закончить спецификацию этой осенью.

Итак, некоторые вещи, которые будут нам доступны:
Читать дальше →

ExtJS: контрол выбора локации

Reading time4 min
Views1.7K
Многие проекты на данный момент используют информацию о местонахождении своих клиентов. К таким относятся интернет-магазины, сайты знакомств, банковские операционные ресурсы и прочее. Именно об элементе указания такого рода информации и будет данная статья: Ext.ux.locationSelect реализованный в поле фреймворка ExtJS 2.
Маленькая демка поможет ответить на вопрос о необходимости вчитываться в дальнейшее.
Читать дальше →

Страны, регионы, города

Reading time1 min
Views120K
Карта мира
Хочу поделиться базой стран, регионов и городов на русском языке. Возможно, кому-то пригодиться в своих проектах. В базе 106 стран, 922 региона и 10969 городов!

Если кто не понял о чем речь, то вспомните, например, как на ВКонтакте указывается город: выбирается страна -> подгружается список регионов -> выбирается регион -> подгружается список городов

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

Profiling PHP Applications With xdebug

Reading time8 min
Views42K
Добро пожаловать в третью статью о xdebug. Уже сейчас вы должны были попробовать xdebug, если нет, сделайте это сегодня ;-).
В первой статье рассказывалось о том, как установить и настроить xdebug, описывались некоторые простейшие возможности, такие как улучшение вывода функции var_dump() или вывод трассировки стека вызовов при получении сообщения об ошибке. Во второй части мы рассмотрели такую возможность xdebug как трассировку. Трассировка содержит все вызовы функций и методов в программе, время запуска, опционально размер памяти, передаваемые и возвращаемые параметры. Лог трассировки может помочь вам понять пути выполнения сложной программы. Вместо того чтобы вставлять отладочный код внутрь программы, вы включаете или выключаете трассировку в тем места где нужно, а потом используете утилиты подобные grep или собственно написанные приложения на PHP для анализа лог файла.
Читать дальше →

Как проверить пароль на предмет безопасности?

Reading time1 min
Views5.7K
Как дать пользователю возможность проверить свой пароль на строгость и взломоустойчивость?

Такой вопрос возникает в последнее время всё чаще, потому нарыл немного вариантов решения вопроса.

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

Звуковая капча

Reading time3 min
Views4.2K
В свете последних событий нарыл такую штуку, решил поделиться с сообществом.
Оригинальная статья на английском, поэтому здесь — только вольный перевод.

Значит так. Что заиметь у себя одновременно и графическую, и звуковую капчу, нужно для начала всё это дело скачать. Потом скопировать себе в удобное место и читать дальше. Кстати, лицензия у этой радости — BSD. Кто понимает, тот выбирает =).

как всё это работает

Интеграция Google Maps и WordPress 2.x

Reading time2 min
Views5.5K
Эта статья является вольным писанием на тему плагина Google Maps for WordPress, находящейся по адресу http://avi.alkalay.net/2006/11/google-maps-plugin-for-wordpress.html. То, что посчитала нужным я добавила от себя, то, что не использовал — пропустила, так что это дело не является переводом в прямом смысле этого слова.

Иногда становится очень полезно и приятно интегрировать Google Maps в раздел «контакты» того сайта, который ты делаешь. Я перепробовала несколько различных плагинов для WordPress и просто классов/библиотек (like Solmetra Maps), но в конце-концов остановилась на плагине Google Maps for Wordpress. Очень содержательное название у плагина, кстати…
Читать дальше →

Tracing PHP Applications with xdebug

Reading time8 min
Views22K
Добро пожаловать во вторую серию нашего повествования про xdebug. Установка xdebug и его базовые возможности были рассмотрены в первой серии. В данной статье мы рассмотрим трассировку программы.
Предыдущая серия цикла Introducing xdebug
Читать дальше →

Высокопроизводительные AJAX-приложения

Reading time1 min
Views737
Примечание: ниже перевод презентации «High Performance Ajax Applications», подготовленной ведущим специалистом из Yahoo (а теперь уже из Apple) Julien Lecomte. В ней автор освещает некоторые аспекты оптимизации как JavaScript-приложений, так и веб-сайтов вообще. В целом, советов много, и почти все, действительно, по делу. Однако, встречается и откровенная реклама Yahoo :) Мои комментарии далее курсивом.

Часть 1. Разработка для высокой производительности



Планируем и проектируем для высокой производительности



  • Ориентируемся на производительность с самого первого дня
  • Тесно работаем с дизайнерами и менеджерами продукта
  • Понимаем рациональность дизайна
  • Объясняем компромиссы между дизайном и производительностью
  • Предлагаем альтернативы и показываем, что еще возможно (на уровне прототипа)
  • Пробуем силы в реализации нетривиального дизайна (нельзя сразу говорит «нет»)
  • Помогаем упростить дизайн и взаимодействие с пользователем (добиваемся компромисса)


читать дальше на webo.in →

Создание превью изображения на основне свойства Overflow

Reading time3 min
Views6.6K
По просьбам пользователей после прочтения статьи Визуализация данных на CSS

Цель данной статьи заключается в том, чтобы реализовать возможность создания превью для изображения, размеры которого можно устанавливать самостоятельно. Бывает так, что у нас нет свободного места на странице, чтобы показать превью картинки полностью. Но и делать из картинок обрезки не хочется. Трюк, приведенный в статье, позволит создать нужные нам размеры превью и отображать полный его размер при наведении курсора на превью.
читать продолжение

Introducing xdebug

Reading time9 min
Views46K
Эта статья первая из серии статей, описывающих xdebug, свободной библиотеки для разработчиков PHP. xdebug – это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP. В данной статье описывается как установить xdebug и рассказывается о его базовых возможностях. В последующих частях мы детальнее взглянем на главные возможности xdebug, а именно трассировку, профайлинг, отладку кода.
Читать дальше →

Переменные сессии на яваскрипте без кук

Reading time3 min
Views30K
Мне никогда не нравилась реализация кук в Яваскрипте. Объем ограничен (4х20 Кб на домен), хранить возможно только в строковом типе, синтаксис для установки и получения кук избыточно сложен.

И более того, браузер добавляет куки в заголовок запроса — а так как многие корпоративные файрволы пропускают только заголовки до некоторого размера, то ваши страницы могут вообще не загрузиться (я видел — это ужасно).

Поэтому я написал маленький скрипт, который позволит вам использовать переменные сессии в Яваскрипте без установки кук. Он позволяет хранить до 2 Мб данных, что намного меньше ограничивает в возможностях, чем решение на основе кук.

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

Делаем закругленные уголки с помощью псевдоэлементов: before и: after

Reading time1 min
Views3.5K
Внимание! Это все устарело, но публикацию не удаляю, чтобы все знали как мы мучались в 2007 году из-за IE6 :-)

Задача: сделать врезку с закругленными уголками с минимумом html-кода.

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

Оптимизация работы с MySQL

Reading time3 min
Views78K
Ни для кого не секрет, что работа с базой данных занимает большую часть работы практически любого сайта. И именно работа с БД чаще всего является узким местом веб-приложений.
В этой статье хотелось бы дать практические советы использования MySQL.
Сразу оговорюсь:
  • данная статья написана про MySQL, хотя общие вещи скорее всего справедливы для любой СУБД.
  • все написанное в статье является моей личной точкой зрения, и не является истиной в последней инстанции.
  • советы не претендуют на новизну и являются результатом обобщения прочтенной литературы и личного опыта.
  • в рамках данной статьи я не буду касаться вопросов конфигурирования MySQL.

Проблемы при использовании MySQL можно разделить на следующие три группы(в порядке значимости):
  1. Неиспользование или неправильное использование индексов.
  2. Неправильная структура БД.
  3. Неправильные \ неоптимальные SQL запросы.

Остановимся на каждой из этих групп подробнее.
Читать дальше →

Визуализация данных на CSS

Reading time3 min
Views2.8K
Визуализация данных графиков, диаграмм в основном решается с помощью флэш и некоторых языков программирования. Являются ли эти способы единственными? Давайте попробуем реализовать эту задачу с помощью CSS.

Предисловие
В этом примере я не буду использовать ни JavaScript, ни любые другие языки. Все, что мне нужно это хорошая разметка и код CSS.
Таким образом, наша цель состоит в том, чтобы представить данные таблицы в виде диаграммы. Можно отметить, что данные диаграммы – это объект из 2х элементов, непосредственно зависимых друг от друга. Поэтому, лучшим решением в отношении структуры и семантики будет использование списков определений.
Почему? Ну, для начала, это список элементов. Несмотря на то, что список является линейным, мы можем обозначить заголовки определений (элементы dt) как пункты по оси X и описание определений (элементы dd) как значения по оси Y.
Читать дальше →

Практическое применение Google AJAX Language API — встраиваем переводчик в свой проект.

Reading time7 min
Views4.7K

Приветствую вас, уважаемые читатели! Возможно, несколько нескромно, но позволю себе обьявить, что далее будет самый первый в Рунете обзор и описание практического применения недавно открытого Google AJAX Language API для доступа с приложений на JavaScript к сервису переводов. Везде я видел пока только анонсы и попытки проанализировать, чем же это может обернутся для разработчиков и пользователей, но именно руководства по встраиванию в свой сайт или проект еще не читал, поэтому решил самостоятельно разобраться и написать.

И так, сначала общая информация. Как известно, у компании Google есть сервис переводов, который умеет переводить тексты на более чем десятке языков. Всего пар переводов есть намного больше, но для некоторых языков доступны только переводы на один-два языка, для других, например, английского — на множество. Раньше вы могли использовать этот сервис для переводов веб-страниц на лету, или перевода отдельных слов и предложений в браузере, но вот дистанционный доступ к сервису при помощи AJAX-а — это стало возможно только на днях с открытием соответствующего API и размещения примеров кода.

API включает в себя функции автоматического определения языка исходного текста, и, собственно сам перевод. Поддерживается пока тринадцать разных языков и двадцать девять вариантов перевода. К сожалению, русский поддерживается только в виде пары Russian <> English, то есть, перевод с русского на английский и обратно, а самое большое число переводов конечно же, для английского. Впрочем, обещают в дальнейшем пополнять возможности переводов, так что не отчаивайтесь.
Читать дальше →
12 ...
26

Information

Rating
Does not participate
Location
Ровенская обл., Украина
Date of birth
Registered
Activity