Масштабирование фотографий
Не знаю как кто привык выкладывать в блог фотографии, но мне видится, что идеальная фотография в блоге должна быть небольшой, а если посетитель сайта хочет что-нибудь рассмотреть на ней, то при клике должно открываться аккуратненькое такое окошко с фотографией большего размера. Но все дело в том, что чтобы сделать такую простенькую штуку, нужно исходную фотографию смасштабировать до меньшего размера, затем сделать еще фото с размером побольше. Затем обе фотки, а желательно также и исходную, закачать на сервер, затем как то сделать выпадающее окошко средствами Javascript.
Поэтому, как правило, большинство блогеров либо постят фотки сразу в большом разрешении, из-за чего их блог загружается минуть пятнадцать и съедает за раз месячный лимит GPRS трафика, либо читатели наслаждаются маленькими нечёткими картинками. Лишь самые трудолюбивые делают как нужно, ибо только самые трудолюбивые могут выполнить все шаги по обработки фотографий и не сломатья на пол пути.
Я - очень ленивый человек. Но делать плохо я тоже не люблю, если стоит выбор делать плохо или не делать вообще я всегда выбираю второй вариант. Наверно поэтому, я до сих пор постил мало фотографий. И вот недавно для одного проекта потребовался подобный функционал, тут уж не отвертеться, поэтому я придумал такую штуку:
- закачиваем на сервер исходную большую картинку через wysiwyg редактор
- адрес картинки нужного размера превьюшки формируется из адреса исходной, плюс некоторые "добавочки". При первом запуске сервер сам создает превьюшки нужного размера и кладет их в виде файлов, при последующих запросах они будут уже лежать в соответствующих папочках, т.е. масштабирование осуществляется только один раз.
- выпадающее окошко делается скриптом, который я выложил на ztools.org
Все просто. Закидываем фото, подправляем пути, и наслаждаемся:
P.S. Дизайн выпадающего окошка помог создать Паша Чуриков - лидер группы четвертый ветер и по-совместительству отличный веб-дизайнер.
Как найти расстояние между двумя GPS точками
Понадобилось посчитать дистанцию между двумя точками заданными в GPS координатах. В PHP реализация такой фунции выглядит следующим образом:
function calcMiles ($Lat1, $Lon1, $Lat2, $Lon2){ return 3958.75 * acos( sin($Lat1/57.2958) * sin($Lat2/57.2958) + cos($Lat1/57.2958) * cos($Lat2/57.2958) * cos($Lon2/57.2958 - $Lon1/57.2958)); }
Ответ получается в милях, для перевода в метры, полученное значение нужно ещё умножить на 1609.344.
Код взял с phpclasses.com. Кстати, глядя на код оригинального класса можно сделать вывод, что автор обладает хорошим чувством юмора - он реализовал вывод результата в десятках различных единиц, включая нанометры, парсеки и световые года.
Ташир-капут
Заказал в офис пиццу в Ташире. Выяснил, что Ташир больше не Ташир. Перец и соль к пицце больше не дают, пицца на тонком тесте совсем не отличается от пиццы на толстом. Начинки мало. Цена выросла. Пепси в подарок больше нет. И Ташир теперь будет называться "Миа".
Жаль. Вкусная у них была пицца.
Ищу новый ноутбук
Созрел для покупки нового ноутбука. Свой Acer Aspire 4810TG мне всем нравится, легкий, комфортная диагональ, большое время работы от батарейки, большой диск, есть CD/DVD, вся нужная мне периферия, но...
Не все железо гладко работает под Linux. В частности, не смог корректно настроить микрофон для Skype, DVD не всегда монтируется, нет нативной поддержки сетевой карты, при каждом обновлении ядра нужно ставить соответствующий модуль, это не приятно. Дуальная загрузка делается через заход в BIOS, что тоже напрягает. Кнопка выключения тачпада выключает его и больше не включает.
Соответственно хочу такой же ноут, но от Dell или IBM или Lenovo - их железо лучше дружит с Linux.
Примерные характеристики должны быть такие:
Диагональ 14 дюймов
НЕ гибридный видеоадаптер - Линукс не умеет переключать графику на лету.
Винт >=320Gb
RAM >=4GB
Вес: < 2кг
Время работы от батарейки >6 часов, лучше 8
Чтобы все компоненты имели драйвера под Linux
Желательно чтобы цена была < $1000
может кто что посоветует?