Создание анимированного GIF при помощи GD
Задался вопросом - можно ли используя стандартные средства PHP создать анимированный GIF? Оказывается можно и довольно просто. Для этого уже создан замечательный класс - GIFEncoder, который можно скачать с phpclasses.org - правда сайт требует регистрации.
Используя этот класс сделал быстренько простенький генератор ajax прелоадеров - вот таких:
Путем нехитрых настроек можно поменять размер, количество, цвет точек, размер самого прелоадера - вобщем в широких пределах можно все параметры изменять, вот только GUI к нему пока никакого, будет свободная минутка соорудю.
Исходник здесь
Нестандартное поведение стандартного оператора ||
Иногда при кросс браузерном программировании бывает нужно выбрать из двух или более переменных которые зависят от типа браузера. Например типичный пример - отслеживание событий мыши - в IE параметры события берутся из глобального объекта event а в Firefox и многих других браузерах event передается как формальный параметр в обработчик события. Поэтому необходимо выбирать тот или иной способ получения этого объекта в зависимости от того какой браузер.
Самое первое, что приходит на ум это использовать тернарный оператор "<condition>?<if true>:<if false>":
a.onclick = function(e){ var ev = e?e:event; //далее работаем с ev }
Сегодня мне предложили еще более короткую запись:
a.onclick = function(e){ var ev = e||event; //далее как обычно }
Все отлично, все логично, но почему это работает? В MSDN четко сказано что || оператор логический и возвращает он true или false в зависимости от входных параметров. Если параметры на входе не логические то приводятся к логическим, т.е. не должно так работать а работает.
Скорее всего операция || возвращает первый не ложный аргумент, причем возвращает по ссылке в чем нетрудно убедиться:
var v1; //undefined var v2 = {}; var result = v1 || v2; alert(result===v2); //true
Интересно, такое поведение где нибудь документировано или это хак?
UPD: Оказыватся у Мозиллы все подробно на этот счет расписано:
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Logical_Operators
Lusy in the sky with diamonds
Новый Сайентист пишет что что ребята из Вашингтона научились делать искуственные алмазы практически неограниченных размеров которые по своим свойствам превосходят природные.
Как пишут процесс изготовления искусственных алмазов известен давно, но они получаются не кристально-прозрачные а слегка мутно-коричневые, и чтобы сделать их прозрачными нужно слегка поджарить при привесьма высокой температуре и весьма высоком давлении, поэтому большие алмазы сделать не получалось. Сейчас же придумали их разогревать до двух тысяч градусов Цельсия в микроволновке заполненной водородом, как говорится в статье полученный таким образом алмаз был послан знакомому ювелиру, который сказал что тот по своим свойствам не отличим от природного.
Так что скоро на прилавках с дешевой бижутерией появится полно дешевых брюликов.
Буква Ё
Интересно, зачем на клавиатуре буква ё? Кто-нибудь вообще эту букву использует при наборе таких довольно популярных слов как "её", "ещё", "всё"?
За собой заметил, что я этой буквы не использую совсем. Срочно вернуть eЁ на место! Спасем букву Ё!