Блог

Небольшая подборка js-библиотек отрисовки диаграмм

javascript ссылки

UMongo

UMongo - аналог MySQL Workbench для MongoDB.

http://mongodb-tools.com/tool/umongo/

mongo

apt-get не работает (ubuntu)

Если вдруг так приключилось, что apt-get отказывается работать, например, загружается, а потом без лишних слов просто вылетает, то попробуйте очистить кэш apt’а. Мне помогает.

$ sudo rm -rf /var/cache/apt/archives/
bash linux

git и PHPStorm — игнорирование файлов и папок

В PHPStorm, при использовании файла .gitignore будет происходить ошибка — что он не может добавить файлы, которые находятся в этих папках. Это очевидно, но хотелось бы, чтоб он просто не добавлял их и ошибки не показывал. Для этого в этой IDE предусмотрена следующая штука:

File -> Settings -> Version Control -> Ignored Files

И там можно добавить файлы и папки, которые не требуется хранить в контроле версий (например, директории assets и protected/runtime в Yii).

php

Debug в PHPStorm

Устанавливаем xdebug:

$ sudo apt-get install php5-xdebug

В php.ini вставить следующий блок (желательно в самый низ):
ВНИМАНИЕ! У вас путь zend_extension="/usr/lib/php5/20090626/xdebug.so" может отличатся! Необходимо написать путь до xdebug.so.

[XDebug]
zend_extension="/usr/lib/php5/20090626/xdebug.so"
xdebug.remote_enable=1
xdebug.remote_port="9000"
xdebug.profiler_enable=1
xdebug.profiler_output_dir="/tmp"

Перезапускаем apache:

$ sudo /etc/init.d/apache2 restart

Теперь в PHPStorm.
Заходим в настройки, раздел PHP, подраздел Debug. Проверяем, что в XDebug порт должен стоять — 9000. Принимаем все изменения.
Далее заходим в Run/Edit configuration, нажимаем на плюсик, добавляем PHP Web Application. Называем, например, «phpdebug». Напротив Server нажимаем «…».
Пишем имя веб-приложения, которое будем отлаживать, пишем виртуальный хост, в качестве дебаггера — XDebug. Принимаем все изменения.

Теперь ставим брейкпоинт и нажимаем shift+F9.

php

Проверить, установлен ли memcache на сервере

Самый простой способ — выполните на сервере команду:

$ php -i | grep -i memcache

Если вы увидите строки

memcache
memcache support => enabled

и подобные, то все установлено!

bash

WTF JS

Забавный сайт на тему «какого хрена это происходит именно так в JS» 🙂

http://wtfjs.com/

javascript ссылки

Автоматическое создание виртуального хоста в Apache2 на Linux

В данном случае использовалась Ubuntu.

Чтобы автоматически создать виртуальный хост в Apache2, вы можете использовать bash-скрипт. Для этого создайте файл (например, vhost_creator.sh) и вставьте в него следующее содержимое:

#!/bin/bash
echo "Creating Virtual Host"
cd /etc/apache2/sites-available
cat <<EOF >> "$1.conf"
<VirtualHost *:80>
ServerName $1
ServerAlias www.$1
DocumentRoot "/var/www/$1"
<Directory "/var/www/$1">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
EOF
mkdir "/var/www/$1"
cd /etc/apache2/sites-enabled
ln -s "/etc/apache2/sites-available/$1.conf" "$1.conf"
echo "Editing /etc/hosts"
cat <<EOF >> "/etc/hosts"
127.0.0.1 $1
EOF
echo "Set permissions"
chown -R "$2:$2" "/var/www/$1"
echo "Restarting Apache2"
/etc/init.d/apache2 restart
echo "Finished!"
echo "Local address: /var/www/$1"
echo "Web address: http://$1"

Сделайте файл исполняемым и запустите его от имени root’а:

$ chmod a+x ./vhost_creator.sh
$ sudo ./vhost_creator.sh your_vhost your_login

где:
your_vhost — название виртуального хоста, например test.local или mysite.ru (заходить на него вы будете по адресу http://test.local или http://mysite.ru).
your_login — ваша основная учетная запись, например crusat. Этот параметр требуется для установки прав владельца на корневую директорию виртуального хоста.

Последнюю версию данного приложения, вы можете найти на https://github.com/crusat/vhostcreator

bash

Обновление CSS без перезагрузки страницы

Обновление CSS без перезагрузки страницы. Просто вставьте этот код на страницу. Не забудьте обрамить тэгом <script>

var DeveloperTool={
    Init:function(){
        this.headObj = document.getElementsByTagName('html')[0].getElementsByTagName('head')[0];
        return this;
    },
    ReloadAllCSS : function(headObj) {
            console.log('DT:ReloadAllCSS');
            var links = headObj.getElementsByTagName('link');
            for (var i=0 ; i < links.length ; i++){
                var link = links[i];
                this.ReloadCSSLink(link);
            }
        return this;
    },
    ReloadCSSLink : function(item) {
        var value = item.getAttribute('href');
        var cutI = value.lastIndexOf('?');
        if (cutI != -1)
        value = value.substring(0, cutI);
        item.setAttribute('href', value + '?t=' + new Date().valueOf());
        return this;
    },
    ReloadAllCSSThisPage : function() {
        this.ReloadAllCSS(this.headObj);
        return this;
    }
};
setInterval(function(){DeveloperTool.Init().ReloadAllCSSThisPage();},1000);
javascript

YouTube-видео через fancybox

Это делается так.

Ссылка будет вида:

<a class="fancy-video-js" href="http://www.youtube.com/v/iCz8R25hlFI&fs=1&amp;autoplay=1"><img src="http://img.youtube.com/vi/iCz8R25hlFI/1.jpg" /></a>

Ютуб возвращает полноразмерные скриншоты видео по адресу http://img.youtube.com/vi/<код видео>/0.jpg. Вместо 0.jpg может быть 1.jpg, 2.jpg или 3.jpg.

Ссылка стоит на ютуб-видео с небольшими модификациями (сравните с кодом, что получаете при копировании HTML в youtube со ссылкой выше).
Затем вставьте код ниже в ваш <script> блок.

$(document).ready(function() {
    $(".fancy-video-js").click(function() {
        $.fancybox({
            ‘padding’   : 0,
            ‘autoScale’ : false,
            ‘href’  : this.href.replace(new RegExp("watch\\?v=", "i"), ‘v/’),
            ‘type’  : ‘swf’,
            ‘swf’   : {
                ‘wmode’ : ‘transparent’,
                ‘allowfullscreen’   : ‘true’
            }
        });
        return false;
    });
});

javascript