Не работает автоподстановка кода в ZEND STUDIO 7.2

У меня слетел autocomliter кода после сбоя системы.

Для восстановления удаляем следующий файл:

Zend/workspaces/<your workspace name>/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.dltk.ui.prefs

Это заставит Eclipse создать новый файл настроек DLTK, автокомплитер снова работает!

Рубрика: Заметки web девелопера | Добавить комментарий

Clear binnary log mysql

Очистка bin-log файлов в Mysql

Эти bin-log файлы служат для восстановления-репликации базы данных, на рабочих системах не рекомендуется их трогать, но для девелоп-машине можно вообще это дело отключить прописав соответствующую инструкцию my.cnf [bin-log].

Как же все таки их почистить быстро и безболезненно? 3 действия:

1. Заходим в папку где у вас лежат bin-log файлы у меня /var/lib/mysql

2. Пересоздаем файл mysql-bin.index т.е. удаляем его и создаем заново и удаляем все файлы mysql-bin.000xxx

3. Запускаем команду SQL RESET MASTER в консоли mysql или из phpmyadmin.

Рубрика: Заметки web девелопера | Добавить комментарий

Facebook Login Error — Oauth2 specification states that ‘perms’ should now be called ‘scope’.

По состоянию на 13 декабря 2011, JavaScript SDK теперь поддерживает только OAuth 2.0 для проверки подлинности.
Возможность включения OAuth 2.0 в JS SDK был впервые представлен в июле. Все приложения были даны до 1 октября 2011 для тестирования и миграции. Нужно заменить response.session на response.authResponse . Чтобы обратиться за разрешениями, сейчас пользуем ‘scope’, а не ‘perms’.

Необходимые изменения:
1) response.session должен быть изменен на response.authResponse
Было:

FB.login(function(response) {
  if (response.session) {
    console.log ("Пользователь подключается к приложению.");
    var accessToken = response.session.access_token;
  }
});

Стало:

FB.login(function(response) {
  if (response.authResponse) {
    console.log ("Пользователь подключается к приложению.");
    var accessToken = response.authResponse.access_token;
  }
});

2) auth.sessionChange меняем на auth.authResponseChange

3) ‘perms’ меняем на ‘scope’

FB.login(function(response) {
  if (response.authResponse) {
    var sessionData = {};
    sessionData.access_token = response.authResponse.accessToken;
    sessionData.expires = response.authResponse.expiresIn;
    onSuccess(sessionData);
  } else {
    onCancel();
  }
        }, { scope: 'email, user_hometown, user_location, user_website, user_birthday' });
Рубрика: Заметки web девелопера | Добавить комментарий

Восстановление загрузчика GRUP.

Ситуация: ноутбук с 2-мя физическими дисками. На первом диске Windows, на 2-м OpenSuse 11.3 Linux. Переустановил винду — слетел загрузчик.
Действия:
1. Загружаемся с установочного DVD от OpenSuse.
2. Выбираем Восстановление системы.
3. При загрузке консоли логинимся под root.
4. В консоли набираем grup
5. далее набираем:

setup (hd0)
quit
reboot

Все — загрузчик восстановлен.

Рубрика: Заметки web девелопера | Добавить комментарий

Обращение к суперглобальным массивам в Zend Framework

У ZendFramework есть оболочка для обращения к суперглобальным массивам таким как $_SERVER, $_POST, $_GET, $_COOKIE, $_ENV
Итак например:

public function indexAction()
{
    //$useragent = $_SERVER['HTTP_USER_AGENT']; вместо этого:
    $useragent = $this->getRequest()->getServer('HTTP_USER_AGENT');
 
    //$user = $_POST['user']; вместо этого (инициализируем значением по-умолчанию "guest"):
    $user = $this->getRequest()->getPost('user', 'guest');
 
    //и т.д.
}

Полезные ссылки по теме:

http://www.tig12.net/downloads/apidocs/zf/Controller/Request/Zend_Controller_Request_Http.class.html
— «внутренности» класса, кстати можно их добыть и самому, как это сделать читаем о Zend_Reflection.

http://framework.zend.com/manual/1.11/ru/zend.controller.request.html — Подробное описание класса на офф сайте Zend Framework.

Рубрика: Заметки web девелопера | Добавить комментарий

Resize изображений на стороне клиента

Для того чтобы лишний раз не обращаться к серверу за размерами изображения, использую 2 способа вывода картинок в ограниченный размер верски:
1. способ CSS:
Это не совсем resize, это способ «вписывания» изображения в заданные рамки, чтобы оно не вылазило за определенные границы.

<a style="display: block; float: left; height: 130px; width: 130px; 
background: url(/img/some_pic.png) no-repeat scroll center bottom transparent;" 
href="http://ru2web.ru"></a>

Этот способ хорош если изображение не больше максимально-заданных параметров, если больше то оно будет обрезаться, что не есть хорошо, да и поисковики любят Some SEO text поэтому 2-й способ в этом плане предпочтительнее.

2. Способ JS:
Представляю пример на JQuery, а именно так как сам использую:
пример HTML:

<div class="see-also">
    <a><img alt="Some SEO text 1" src="/img/some_pic1.png" /></a>
    <a><img alt="Some SEO text 2" src="/img/some_pic2.png" /></a>
</div>
<script type="text/javascript">
    $(document).ready(function() {
    $(".see-also a img").each(function () {
    window.onload = resizebleImg;
});
 
function resizebleImg() {
    var height = 0;
    var width = 0;
    if ( $(this).width() > 130 ) {
        height = $(this).height()*(130/$(this).width());
        $(this).attr({'height':height});
        $(this).attr({'width':'130'});
    }
    if ($(this).height() > 130) {
        width = $(this).width()*(130/$(this).height());
        $(this).attr({'width':width});
        $(this).attr({'height':'130'});
    }
});
}
</script>
Рубрика: Заметки web девелопера | Добавить комментарий

Команды SVN. Памятка.

add — Добавляет файлы, директории и символические связи, помечая их для последующего внесения в хранилище. Будучи помеченными, они закачиваются и добавляются в хранилище при первом же закреплении изменений. Если вы что-то добавили, но потом передумали до закрепления, то снять метку добавления можно подкомандой svn revert.
svn add PATH…
$ svn add testdir

blame (praise, annotate, ann) — Построчно показывает автора и редакцию для указанных файлов или URL-ов. Каждая строка текста начинается с имени автора (имени пользователя) и номера редакции. Таким образом указывается кто и когда изменял эту строку последний раз.
svn blame TARGET[@REV]…
$ svn blame http://svn.red-bean.com/repos/test/readme.txt

cat — Выводит содержимое указанных файлов или URL-ов. Для перечисления содержимого каталогов используйте svn list.
svn cat TARGET[@REV]…
$ svn cat http://svn.red-bean.com/repos/test/readme.txt

checkout (co) — Создает рабочую копию на основе данных в хранилище. Если PATH пропущен, базовое имя URL будет использоваться в качестве имени для каталога рабочей копии. Если задано несколько URL, соответствующие копии будут создаваться в подкаталоге PATH, каждая в своем каталоге образованом из базового имени URL.
svn checkout URL[@REV]… [PATH]
svn checkout svn://svn.ru2web.ru/ru2web/branches/www-01/ /usr/home/vasia/ru2web.ru/app/

cleanup — Рекурсивно чистит рабочую копию, удаляя блокировки оставшиеся от незавершенных операций. Как только столкнетесь с ошибкой «рабочая копия заблокирована», запустите эту подкоманду для удаления старых блокировок и приведения рабочей копии в работоспособное состояние.

Если по некоторым причинам операция по команде svn update провалилась из-за проблем с запущенным внешней программой различий (например, что-то не то в ней нажал или произошел сбой сети), нужно задать параметр —diff3-cmd чтобы дать возможность при чистке копии завершить все объединяния используя внешнюю программу различий. Вы также можете указать конфигурационный каталог посредством параметра —config-dir, но постарайтесь не злоупотреблять этими параметрами.

commit (ci) — Посылает сделанные вами изменения рабочей копии в хранилище для их сохранения в нем. Если вы не воспользовались ни —file, ни —message параметром, svn запустит внешний редактор для составления комментария. Прочтите описание параметра editor-cmd в «Config».
svn commit вышлет храшилищу все рекурсивно найденные метки блокировок и разблокирует соответсвующие этим меткам ресурсы, если не был указан параметр —no-unlock. «Район поиска» задается указанием PATH.
svn commit [PATH...]

copy (cp) — Копирует файл в рабочей копии или в хранилище. SRC и DST могут быть путями как внутри рабочей копии, так и URL внутри хранилища.
svn copy SRC DST

delete (del, remove, rm) — Удаление элемента из рабочей копии или репозитория.
svn delete PATH…
svn delete URL…

diff (di) — Показывает различия между рабочей копией и репозиторием.
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500

export — Экспорт чистого дерева каталогов (без .svn папок).

help (?, h) — Помощь.

import — Фиксация неверсированного файла или дерева в хранилище.
svn import [PATH] URL

info — Отображение информации о локальном или удаленном элементе.
svn info [TARGET...]

list (ls) — Список каталогов в хранилище.
svn list [TARGET[@REV]…]
$ svn list http://svn.red-bean.com/repos/test/support

lock — Блокировка рабочей копии в хранилище, так что никакой другой пользователь не может вносить изменения в данному пути.
svn lock TARGET…
$ svn lock tree.jpg house.jpg

log — Показать сообщения журнала.
svn log [PATH]
svn log URL [PATH...]
$ svn log

merge — Применить различия между двумя источниками.
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch

mkdir — Создать каталог в хранилище с контролем версий.
$ svn mkdir newdir

move (mv, rename, ren) — Перемещение файла или директории.
svn move SRC DST

propdel (pdel, pd) — Удаление свойств из файлов, каталогов или ревизий.
svn propdel PROPNAME [PATH...]
svn propdel PROPNAME —revprop -r REV [URL]

propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)

resolved — Удалить «конфликты» на рабочую копию файлов или каталогов.
svn resolved PATH…

revert — Отменить все локальные изменения.
$ svn revert myprj.phtml

status (stat, st) — Статус рабочей копии файлов или каталогов.
$ svn status wc

switch (sw) — Обновление рабочей копии на другой URL.

unlock — Разблокировка рабочей копии.

update (up) — Обновление вашей рабочей копии.

Рубрика: Заметки web девелопера | Добавить комментарий

Библиотека PHP для Платформы@Mail.Ru

Недавно пришлось писать систему регистрации/авторизации через различные социальные платформы, столкнулся с проблемой — нет библиотеки PHP для Платформы@Mail.Ru. Пришлось писать самому. За основу взял библиотеку от Facebook.

Скачать библиотеку можно отсюда Mailru.php.tar

Как пользоваться:

Пример:

    //Заносим в сессию то что вернул mail.ru после логина в формате JSON
    $this->session->mrc = Zend_Json::decode($_POST['mrcdata']);
    $mailru = new Mailru(array(
                            'appId'  => 'Идентификатор_Приложения',
                            'secret' => 'Секрет Приложения',
                            'privateKey' => 'Ключ приложения',
                            'cookie' => true,
                        ));
    $data = $mailru->api( array('method' => 'users.getInfo', 'uids'=>$this->session->mrc['vid']) );

Как-то так…

Рубрика: Заметки web девелопера | Добавить комментарий

SVN Клиент под FreeBSD 7.3 на masterhost.

Если вы счастливые обладатели хостинга от мастерхоста, при этом являетесь большим любителем использования svn, предлагаю вам свой вариант установки клиента svn под FreeBSD 7.3 которая на данный момент стоит на моем хостинге (16.01.2011).

Для начала проверим все же версию вашей системы: uname -a

Поехали:

Создаем временную директорию:

mkdir tmp
cd tmp

Скачиваем пакет Subversion и зависимости:

wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/expat.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/db42.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/gdbm.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/apr-ipv6-gdbm-db42.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/gettext.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/libiconv.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/sqlite3.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/neon29.tbz
wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7.3-release/Latest/subversion.tbz

Устанавливаем пакеты в домашнюю дерикторию, в какталог usr. Сообщения о ошибках можно игнорировать:

mkdir ~/var
mkdir ~/usr
export PKG_DBDIR=~/var/pkg
pkg_add -P ~/usr/ expat.tbz
pkg_add -P ~/usr/ libiconv.tbz
pkg_add -P ~/usr/ gettext.tbz
pkg_add -P ~/usr/ db42.tbz
pkg_add -P ~/usr/ gdbm.tbz
pkg_add -P ~/usr/ apr-ipv6-gdbm-db42.tbz
pkg_add -P ~/usr/ sqlite3.tbz
pkg_add -P ~/usr/ neon29.tbz
pkg_add -P ~/usr/ subversion.tbz

Для нормальной работы, нужно установить следующие переменные окружения:

export PATH=$PATH:$HOME/usr/bin
export LD_LIBRARY_PATH=$HOME/usr/lib

Если при чекауте появляется ошибка про кодировки, устанавливаем локаль:

export LANG=ru_RU.UTF-8

все заработало.

Рубрика: Заметки web девелопера | Комментарии (5)

FreeBSD 8.1 Автозапуск Apache и MySQL

1. Поставили FreeBSD 8.1.

2. Ставим cvsup.

cd /usr/ports/net/cvsup
make install clean

3. Обновляем порты (обязательная процедура, без нее не поставился MC из портов).

cp /usr/share/examples/cvsup/ports-supfile /root/ports-supfile
правим конфиг: vi /root/ports-supfile
cvsup -g -L 2 /root/ports-supfile

4. Устанавливаем MySQL.

cd /usr/ports/databases/mysql51-server
make install clean
cp /usr/local/share/mysql/my-huge.cnf /etc/my.cnf
/usr/local/bin/mysql_install_db
cd /var/db/ 
chown mysql mysql
chgrp mysql mysql 
mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

5. Устанавливаем apr(нужен для установки Apache).
cd /usr/ports/devel/apr1
                                                                 
 │ │     [X] THREADS    Enable Threads in apr                       │ │                                                                   
 │ │     [ ] IPV6       Enable IPV6 Support in apr                  │ │                                                                   
 │ │     [X] BDB        Enable Berkley BDB support in apr-util      │ │                                                                   
 │ │     [X] GDBM       Enable GNU dbm support in apr-util          │ │                                                                   
 │ │     [ ] LDAP       Enable LDAP support in apr-util             │ │                                                                   
 │ │     [X] MYSQL      Enable MySQL suport in apr-util             │ │                                                                   
 │ │     [ ] NDBM       Enable NDBM support in apr-util             │ │                                                                   
 │ │     [ ] PGSQL      Enable Postgresql suport in apr-util        │ │                                                                   
 │ │     [X] SQLITE     Enable SQLite3 support in apr-util          │ │                                                                   
 │ │     [X] DEVRANDOM  Use /dev/random or compatible in apr        │ │                                                                                                                                   

make install clean

6. Устанавливаем Apache
cd /usr/ports/www/apache22
make install clean

В файле rc.conf просто прописываем:

mysql_enable="YES"
apache22_enable="YES" #Это актуально  для Apache 2.2.x соответственно.

ЗЫЖ make install -D FORCE_PKG_REGISTER #Для решения "An older version of security/openssl is already installed"

Рубрика: Заметки web девелопера | Добавить комментарий