войти зарегистрироваться

Ненормальное программированиеИнтерактивная открытка в виде HTA из песочницы

HTA-приложения уже описывались на хабре. Теперь же рассмотрим конкретный пример использования технологии в мирных целях.

Для чего?

Иногда хочется сделать красивую открытку, но при этом не заморачиваться с FLASH, Silverlight и т.п. А ведь зная только HTML и немного JavaScript можно сделать превосходные открытки в виде приложения одним файлом! Тот кто пролистает статью не вчитавшись может отметить что это не совсем просто. Но сделав один раз каркас (который я предоставляю в конце статьи на суд и свободное использование), вы будете легко и быстро делать новые и новые открытки. И даже вполне можно автоматизировать процесс создания персональных интерактивных открыток.

Я пиарюсьОнлайн агрегатор операций со строками

easydev.org

У вас часто возникает необходимость быстро конвертировать время из timestamp, ансериализовать строку и распечатать объект, узнать md5 хэш строки, кодировать ее в base64-обратно и т.д.? Конечно, для этого уже есть ряд тематических сервисов (md5.org, base64.org), которыми большинство из вас неоднократно пользовались. Обычно они выполняют только одну из функций, ибо удобнее зайти на главную, не щелкая мышкой по вкладкам вбить в большое поле на главной строку и получить результат. Под катом расскажу про свой проект easydev.org, который позволяет выполнить любую подобную операцию быстрее и удобнее, даже без использования мыши.

Клиентская оптимизацияХраните мелкие картинки в CSS

Храните мелкие картинки, которые нельзя засунуть в спрайты, в data:image base64 в CSS — это экономит кучу запросов к вебсерверу.

Информационная безопасностьОчень интересный вариант защиты от SQL-инъекций и XSS

Один весьма мной уважаемый гн Ден Каминский (Dan Kaminsky — известен благодаря обнаружению им фундаментальной уязвимости в DNS ) предложил очень интересную универсальную технику защиты от SQL injection и XSS.

Метод очень просто и от того гениален.

Персональные блоги onEnterFrame #25

Добро пожаловать на новый выпуск подкаста onEnterFrame.ru! Сегодня в программе:

прослушан 125 раз

Веб-разработкаПрограмма для конвертации изображений с целью внедрения в html страницы

Для вывода картинки на HTML страницу существует стандартный тэг в виде img src=«URL», где URL задает адрес подгружаемой картинки. Т.е. для загрузки каждой из картинок будет отдельное обращение на сервер. Существует прием позволяющий встроить картинки непосредственно в html код, тэг картинки будет выглядеть в этом случае примерно так:
img src=«data:image/jpg;base64, iVBORw0KGgoAAAANSUhEUgAAADIA.....»
В итоге все картинки будут сразу вшиты в страничку, и потребуется всего один запрос к серверу.
Минусом данного решения будет увеличение веса картинок примерно в 1.3 раза.
Для автоматизации процесса получения base64 строк мной написана небольшая программа. Позволяет обрабатывать картинки пакетно, и имеет несколько режимов для сохранения.
Архив с исходником, программой и инсталлером(600кб)

P.S. внимание, программа скомпилена под win!

Веб-разработкаК вопросу о кроссбраузерных Data URI

В погоне за оптимизацией сайтов захотел уменьшить количество запросов, не в ущерб размерам оптимизированных файлов.
Цель — передавать в одном файле изображения разных форматов, с разными настройками оптимизации.
Как средство, выбрал data uri и gzip'нутый css файл. Однако IE с data uri работают из рук вон плохо. Но в них есть mhtml. Существовавшая реализация не отвечала моим требованиям, т.к. приходилось 1 файл передавать два раза — раз для IE, в mhtml, и второй для всех остальных, в data uri. В поисках решения наткнулся на статью bolk'а, где описывалось решение для формата jpeg и некоторые теоретические выкладки для gif и png. После почти трехнедельного раскуривания манов мне удалось реализовать решение для gif и png и автоматизировать процесс для всех трех форматов.

АлгоритмыSGVsbG8gd29ybGQh или история base64

Краткая предыстория


Вообще, все началось давно. Настолько давно, что вряд ли остались свидетели holy wars тех дней, когда решалось — сколько же бит должно быть в байте.

Это сейчас нам кажется само собой разумеющимся, что 1 байт = 8 бит, что в байте можно закодировать 256 различных значений. Но когда-то было совсем не так. История помнит и семибитные кодировки, и шестибитные, и даже более экзотические системы (например — ЭВМ «Сетунь», которая использовала троичную логику, то есть один троичный бит — трит мог иметь три, а не два значения, для нее было справедливо соотношение 1 трайт = 6 тритам). Но если оставить в стороне всякую экзотику, то мэйнстримом все-таки были кодировки, в которых 6, 7 или 8 бит в байте.

Шестибитная кодировка (например — BCD) позволяла закодировать в одном байте 64 различных значения, что, как казалось, было вполне достаточно для кодирования алфавитно-цифровых символов, а «лишний» седьмой бит расширял кодировку уже до 128 символов.

Однако скоро восьмибитный байт стал общепринятым.

Персональные блоги Разбираем query от http://www.hugeurl.com/

Немного о www.hugeurl.com/ — разбираем url, берем query_string

$urlDecode = base64_decode( $queryString );
$argument = explode( "&", $urlDecode );


на выходе получаем

$argument[0] = некий хеш
$argument[1] = количество итераций
$argument[2] = еще одно base64

for ( $i = 0, $i < $argument[1], $i++ ){
$argument[2] = base64_decode( $argument[2] )
}

И вот искомое:
$url = $argument[2];