Архив

PHP Кэширование картинок

Недавно была необходимость сделать функцию кэширования картинок на php ну я и написал простой скрипт, который отлично справляется с этой задачей.

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

Это спасает нас от необходимости делать кучу ресайзов при загрузке картинки + это универсальный способ, который можно использовать в любом проекте.

Листинг под катом.

Читать далее

SQL Joins Виды, типы, различия

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

Для начала оговорим, что у нас есть две таблицы: Table A и Table B:

id name id name


1 Pirate 1 Rutabaga
2 Monkey 2 Pirate
3 Ninja 3 Darth Vader
4 Spaghetti 4 Ninja

Теперь можно рассмотреть, варианты и различия возможных JOIN запросов.

Inner join выведет записи, которые соответствуют  таблице A и таблице B.

join-inner

SELECT * FROM TableA
INNER JOIN TableB
ON TableA.name = TableB.name

id name id name


1 Pirate 2 Pirate
3 Ninja 4 Ninja

Читать далее

Человеческий фактор

Для человеческой глупости нет патча (с) Kevin Mitnick

Последние пару месяцев просто поражают спонтанностью происшествий, главное, что потом, когда анализируешь их становится "и смешно и грустно". Я конечно могу и дальше списывать всё на злой рок и на дядьку Мерфи, на которого уже ссылался несколько постов назад, но делу это не поможет.

Например последней ситуацией, которую можно назвать только как "Пиздец подкрался незаметно", когда с утра меня разбудили звонком, в котором сообщали что вместо сайта группы CENTR (centrgroup.ru) открывается страница от reg.ru сообщающая, что домен не оплачен бла-бла-бла. Сначала подумал, что это шутка. Домены я оплачиваю вовремя, а у centr'a домены оплачиваются когда на улице снег лежит, так что подвох. Открыл, смотрю и правда, не работает. Резолвю, ip совсем другой.

Лезу в админ панель доменов посмотреть что там, попутно звоню в суппорт и насилую консоль что бы понять в чем дело. В голове и мысли об уязвимости DNS пролетели, и про киберсквотеров подумал, но решение оказалось куда проще. Некто, проебал оплату домена, на котором весят NS (name server) и так как его стало форвардить на другой ip, то и остальные сайты, к которым он был привязан поехали в след за ним.

Благо проблему решили довольно быстро и успели как раз к 12 часовому апу. Так, что те, у кого провайдер не косячит с обновлением dns, скорее всего и не заметили ошибку.

Читать далее

Грамотный backup

В последнее время, всё больше и больше озадачиваюсь вопросами организации "резервного хранилища". Пока еще не делал никаких подвижек в эту сторону, а просто думаю над возможными вариантами. Сильно в эту тему тоже не углублялся, так что пост больше походит на "мысли в слух".

Для начала нужно определиться, что нужно бэкапить:

Необходимо:

  • сайты
  • рабочие папки (home folder) cо всех машин за которыми работаю.

Желательно:

  • Музыкальное хранилище.
  • Видео хранилище. Причем под видео, я воспринимаю не только папку
  • "Downloads", а в первую очередь накопленный почти за год архив с Creative VADO.

Из возможных решений проблемы, рассматривал несколько вариантов:
Читать далее


Почему не работал centrgroup.ru

3 суток даунтайма - это не "хухры-мухры". Я конечно постарался всех подготовить, но сам не ожидал что выйдет так долго.

Как все должно было быть:

  • 12 числа в 11:00 мы забираем сервер из старого ДЦ
  • 14:00 он уже в новом ДЦ
  • 15:00 заканчиваем с настройками, ставим в стойку и ждем когда у всех  обновятся DNS
  • Радуемся жизни

Как все получилось на самом деле:

Мы забрали сервер из ДЦ, привезли его на нашу площадку, но запускаться он категорически отказывался т.к. несколько демонов вешали его работу.

Пока пытались их утихомирить, из-за неведомо-опастной-хуйни упал RAID. Начали танцевать с бубном и восстанавливать инфу. Промучались до 14 числа. 14 числа когда система была заново установленна, переносили весь день файлы, восстанавливали настройки хостинга и демонов.

Короче пздц полный. Все эти дни проклинал дядьку Мерфи и егозаконы.


Автоматическое обновление wordpress

Есть в wordpress'e такая занимательная опция, как автоматическая установка и обновление плагинов. Просит от вас только указать хост, логин и пароль для ftp sftp доступа, а далее делает всё сама. К сожалению "из коробки" эта опция заводится далеко не у всех. Если вы тоже стали одним из счастливых обладателей сообщения:

Downloading update from
http://downloads.wordpress.org/plugin/%plugin-name%.zip

Download failed.: Could not create Temporary file
Installation Failed

... то сделать вам нужно следующие

Читать далее

Hotkeys для wordpress

В этой заметке, я расскажу как легко добавить в ваш блог поддержку hotkey's.

Hotkey - это определенное сочетание клавиш, по нажатию которых происходит определенное действие. Мы уже привыкли использовать ctrl+c/ctrl+v. Тенденции развития интернета диктуют свою моду и многие уже привыкли использовать для перехода между страницами сайта сочетание "ctrl+left" или "ctrl+right"

Для добавления этого функционала, первое что нам потребуется - плагин hotkey для библиотеки jquery.

jQuery hotkey

Теперь о том, как это сделать. У нас есть два варианта:

  • Генерировать код в самом шаблоне с помощью встроенных функций
  • Генерировать код "на лету", с помощью JS

Я выбрал второй вариант, т.к. он мне показался более правильным, во первых мы не напрягаем шаблон лишними вызовами, и главное мы уверенны что будем получать правильные ссылки. Ведь нам нужно на главной странице листать все записи, в категории листать записи категории, а внутри поста листать посты. Таким образом, всё что нам осталось, это добавить в header шаблон (скорее всего header.php) нижеприведенный код.

Читать далее

Интеграция phpbb3 с любым сайтом

Не очень давно, по работе, пришлось делать интеграцию уже имеющегося сайта, с форумом на системе phpBB 3-ей версии.

После разбора полетов и курения мануалов по работе форума, организовалась очень интересная и простая система. Если говорить о её плюсах, то она полностью независима от форума, таким образом, при обнолении движка, мы уверены что не потерям правленные нами ранее файлы и что ничего не поломается.

Для того, что бы понимать зачем и как это делать, сначала я постараюсь объяснить логику работы. Из уже готовых изменений, нам нужно добавить в БД сайта, дополнительное поле, например - user_f_id, в которое мы будем записывать информацию о сопоставлении профилей пользователей сайта, с профилями пользовталей форума (предполагается числовой идентификатор, user_id из БД форума - таблицы %prefix%_users).

Читать далее

PlayStation 3 - мысли вслух

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

2477189721_57e2f2ba25.jpg

Начать хочется с цены, средняя по Мск ~16000 за приставку на 80гб, два джойстика sixaxis dualshock 3 и какую либо игру в подарок.

Согласитесь, не маленькая. Есть более дешевые варианты, с меньшим жестким диском и отсутствием одного джойстика, но как показывает практика, если покупать ps3 не "просто что бы было", то лучше раскошелиться на нормальный вариант, чем потом докупать составляющие.

Читать далее

Google Picasa on your site

Уже давно, в своем твиттере, я обещал рассказать как встроить фото галерею пикасы в свой сайт.

Идея довольно простая: "Зачем изобретать велосипед, если можно использовать мотокомбайн?".

Рыская по глубинам интернета, я нашел замечательный скрипт picasaViewer. Написан он на JavaScript и является плагином для mooTools.

Настройки весьма простые: в файле picasaViewer.js указываем username пользователя, фото галереи которого хотим отображать.

picasa.png

Из плюсов стоит отметить то, что он работает почти со всем современными броузерами и не требуют серверных мощностей для выполнения.

Из минусов то, что написан он на moo и возможно, что будет конфликтовать с другими js фреймворками.

Готовый пак (с slimbox дополнением), забираем с зеркала в моем блоге.

Download: picasaview.zip

Удачного использования.