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

Читать далее

join, mysql, sql      

jQuery + label tag

Очередной, очень маленький, но ужасно удобный trick.

Суть очень простая, он автоматически делает  одинаковый width для всех элементов \<label>.

Изначально форма выглядит примерно вот так:

before

Добавляем стиль:

label, input[type="text"]{
    float:left;
    display:block;
}
label{
    margin-right: 5px;
}
.field{
    width:100%;
    overflow:auto;
    margin:5px 0px;
}

Добавляем javascript:

$(document).ready(function() {
    var max = 0;
    $("label").each(function(){
        if ($(this).width() > max)
            max = $(this).width();
    });
    $("label").width(max);
});

И вуаля:

after


css, javascript, jquery      

Клеви навигация.

Забыл? Бросил? Нет, я всё ещё тут, просто в последнее время многое поменялось и на посты время не оставалось. Ведь мой блог это не очередной "манимэйкерский" высер, а так, для себя в первую очередь.

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

Началось всё с того, что некоторое время назад, я прикрутил к блогу hotkey (hotkeys для wordpress), но какой в них смысл, если об этом никто не знает. Вот мне и захотелось вынести их на передний план.

Для этого, я чуть - чуть поиграл с css стилями, и теперь .footer выглядит следующим образом:

#container_foot {
    border-top:thin dashed;
    bottom:0;
    height:32px;
    left:0;
    padding-bottom:0;
    padding-top:5px;
    position:fixed;
    width:100%;
    z-index:1000;
}

Это то, что касается расположения. Стиль он и так унаследует от вашей темы.


blog, css, locdog, rap, wordpress      

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

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

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

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

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

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

Читать далее

centr, dns, админ, жизнь      

Грамотный backup.

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

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

Необходимо:

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

Желательно:

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

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


backup, device, hdd, internet, Linux      

Иммигрируем? Ведь все мы мечтали жить в Голландии

> **Хуйе нах, Голландия!** > >

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

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

Головой об косяк

Я свободно говорю по-голландски. Я похож на голландца. Если не стригусь
коротко. Если коротко — во мне сразу угадывают русского. Я приехал в
Голландию почти десять лет назад, когда мигрантов было еще мало,
голландцы были приветливы и общительны, а в обращении ходили гульдены —
самая красивая бумажная валюта в Европе.

Читать далее

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

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

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

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

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

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

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


centr, dns, hosting      

Автоматическое обновление 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

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


php, update, wordpress      

Hotkeys для wordpress

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

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

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

jQuery hotkey

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

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

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

Читать далее

blog, javascript, php, web2.0, wordpress      

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

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

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

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

Читать далее

php, phpbb, форум