четверг, 11 ноября 2010 г.

Netbeans Горячие клавиши

Я работаю с IDE Netbeans и Notepad++

маст хэв - горячие клавиши для Netbeans

* Поиск и замена

Ctrl+F3 - Поиск слова, находящегося у курсора
F3/Shift+F3 - Поиск слудующего/предыдущего вхождения слова в файле
Ctrl+F/H - Поиск/Замена в файле
Alt+F7 - Поиск использований
Ctrl+Shift+F/H - Поиск/замена в проектах
Alt+Shift+U - Поиск результатов использования
Alt+Shift+H - Отключить подсветку результата поиска
Ctrl+R - Переименовать
Ctrl+U, then U - Конвертация выделенного текста в верхний регистр
Ctrl+U, then L - Конвертация выделенного текста в нижний регистр
Ctrl+U, then S - Инверсия регистра букв выделенного текста
Ctrl+Shift+V - Вставка отформатированного текста
Ctrl+I - Перейти в поле "Быстрый Поиск"

* Навигация по исходному коду

Ctrl+O/Alt+Shift+O - Перейти к типу/файлу
Ctrl+Shift+T - Перейти к JUnit тесту
Alt+O - Перейти к источнику
Ctrl+B - Перейти к объявлению переменной
Ctrl+G - Перейти к строке, задав ее номер
Ctrl+Shift+M - Добавить/Удалить заметку
Ctrl+Shift+Period/Comma - Следующая/Предыдущая заметка
Ctrl+Period/Comma - Следующая/Предыдущая использование/ошибка компиляции
Ctrl+Shift+1/2/3 - Выделить в проектах/файлах/фаворитах
Ctrl+[ - Переместить курсор к открывающейся/закрывающейся скобке от соответствующей закрывающейся/открывающейся скобки
Ctrl+K/Ctrl+Shift K - Следующее/предыдущее совпадение слова
Alt+Left/Alt+Right/Ctrl+Q - Перейти к предыдущему/следующему/последнему редактированию
Alt+Up/Down - Следующее/предыдущее встречаемость данной переменной

* Программирование на языке Java

Alt+Insert - Сгенерировать код
Ctrl+Shift+I - Исправить все импорты класса
Alt+Shift+I - Исправить выделенный импорт класса
Alt+Shift+F - Отформатировать текст согласно кодинг-стайлу
Alt+Shift+Left/Right/Up/Down - Переместить строку влево/вправо/вверх/вниз на одну табуляцию
Ctrl+Shift+Up/Down - Скопировать и вставить текущую строку выше/ниже
Ctrl/Alt+F12 - Просмотр членов класса/всей иерархии класса
Ctrl+/ - Закомментировать/Раскомментировать текущую строку
Ctrl+E - Удалить текущую строку

При написании кода очень удобно использовать сокращения
часто повторяемых участков кода. Схема использования:
сокращение+Tab

* Сокращения для Java редактора

En - Enumeration
Ex - Exception
Ob - Object
Psf - public static final
Psfb - public static final boolean
Psfi - public static final int
Psfs - public static final String
St - String
ab - abstract
bo - boolean
br - break
ca - catch (
cl - class
cn - continue
df - default:
dowhile - do {} while (condition);
eq - equals
ex - extends
fa - false
fi - final
fl - float
forc - for (Iterator it = collection.iterator(); it.hasNext();) {Object elem = (Object) it.next();}
fore - for (Object elem : iterable) {}
fori - for (int i = 0; i < arr.length; i++) {}
fy - finally
ie - interface
ifelse - if (condition){}else {}
im - implements
iof - instanceof
ir - import
le - length
newo - Object name = new Object(args);
pe - protected
pr - private
psf - private static final
psfb - private static final boolean
psfi - private static final int
psfs - private static final String
pst - printStackTrace();
psvm - public static void main(String[] args){}
pu - public
re - return
serr - System.err.println ("|");
sout - System.out.println ("|");
st - static
sw - switch (
sy - synchronized
tds - Thread.dumpStack();
th - throws
trycatch - try {} catch (Exception e) {}
tw - throw
twn - throw new
wh - while (
whileit - while (it.hasNext()) {Object elem = (Object) it.next();}

Подсветка кода для Netbeans как в Notepad++

вторник, 9 ноября 2010 г.

Дебагинг в PHP

Есить куча вариантов дебага.

Самый простой
Код - пример #1
1
print_r($foo);
Получше:
Код - пример #1
1
2
echo '<pre>';
print_r($foo);
Я использую такую функцию:
Код - пример #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function deb($str, $name = '') {
    $name = ($name)?$name:gettype($str);
    $aCol = array('#FFF082','#BAFF81','#BAFFD7','#F0D9D7');
    $color = $aCol[RAND(0,3)];
    echo "<PRE><div style='background-color: $color'><b>$name = <b>";
    if (is_array($str)) echo '<br>';
    print_r($str);
    echo "</div></PRE><br>";
}

// Пример использования

deb($foo);

// или

deb($foo, 'foo');

среда, 18 августа 2010 г.

Парсинг HTML, DOM

Свое знакомство с php я начал именно с парсинга, в дальнейшем для облегчения я попробовал использовать Simple HTML DOM Parser. С ним работать очень удобно, но он жрет очень много памяти, и там где происходит много итераций с его участием скрипт завершает свою работу с Fatal error из за не хватки памяти.
 
Вообщем нашел я ему замену, регулярка которая парсит содержимое элемента по указному id или class-у.
Код - пример #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
class ParsDom {

    public $sContent = '';
    
    public function getElement($sId = '', $sElem = 'div') {
        if (!$sId || !$this->sContent) return '';
        $aOut[0] = array();
        $sReg = "
        /
        <{$sElem}[^>]+\b(?:class|id)=[\"\']?{$sId}[\"\']?[^>]*>
         (?:
           (<{$sElem}[^>]*>*?<\/{$sElem}>)|
           .
         )*?
        <\/{$sElem}>
        /xsS";

        preg_match_all($sReg, $this->sContent, $aOut);

        if (isset($aOut[0]))
            return $aOut[0];
        else    
            return '';
    }
}

// Пример
$oParsDom = new ParsDom;

// Контент от куда будем парсить
$oParsDom->sContent = $sData;

// Парсим все DIV элементы с указаным id или классом
$aDiv = $oParsDom->getElement('class_or_id_name');

// Парсим все LI элементы с указаным id или классом
$aLi = $oParsDom->getElement('menu', 'li');

суббота, 7 августа 2010 г.

Жарко

Выходные. У нас жара, побиты все рекорды, температура за 40. Леса горят, вроде уже поменьше, т.к. меньше смога на улице.

Вчера посмотрел фильм Мухина "Максимум лжи и глупости" про высадку американцев на Луне. Говорит логичные вещи, у них не было возможности туда доставить космонавтов и обратно, т.к. не было таких мощных двигателей и до сих пор нет. Также привезенные 300кг лунного грунта никому не дают на анализ, а кому давали, установили, что он с земли.

Все парюсь с PHP. В который раз, переделываю механизм процессов, теперь на ООП. Все это трудно укладывается в голове, поэтому заюзал сервис "карт ума" и чего то там изобразив пытаюсь воплотить в коде, надеюсь получится и переписывать не придется.

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

Почему блоггер не сохраняет мое форматирование! Аргх... Приходится ручками раставлять теги br

пятница, 6 августа 2010 г.

Эксперимент с Sape 0

Прошло уже наверное пол года, после того как Яндекс забанил последние из моих ГС, которые, хоть и немного но приносили прибыль.

Как то у меня к этому всему охладело. Но, читая блоги, посматривая на topsape.ru захотелось попробовать...

Эксперимент будет такой:

Использую:
1. только фри домены 3-го уровня
2. фрихостинги
3. свои навыки php, делаю "кнопку бабло" о_О
4. Zebrum Lite, Satellite-X

Получаю профит!

четверг, 29 июля 2010 г.

Почему Notepad++ лучше IDE

1. Он гораздо быстрее любой IDE
2. Подсветка синтаксиса, парных тегов, фигурных скобок лучшая из виденных мной
3. Ctrl+B - скачем между фигурными скобками
Ctrl+D - дублируем строчку
Ctrl+Shift+ стрелки вверх, вниз - перемещаем строчки вверх, вниз

Наиболее близок к Notepad++ - JetBrains PhpStorm но он платный и тормозной.

среда, 21 июля 2010 г.

Выбор php фреймворка для проекта. Великолепный Yii

Мое знакомство с фреймворками началось с CodeIgniter. У него хорошая документация, есть сообщество, он до недавнего времени был самым быстрым (вроде бы). Но он уже давно не обновлялся и устарел.

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

Посмотрел Zend Framework. Этот фреймворк достаточно мощный, и возможностей у него много. Мне не понравилось что он изначально интегрирован с Dojo с которым я не дружу. jQuery там опционально поддерживается, но уж очень много нужно плясок с бубном, чтобы все работало как надо. Мультиязычность тоже проблема.

Попробовал Yii. Первые впечатления: Я в восторге! Он сам генерирует код! Обалденно... наверное, это что то подобное ROR. Он сразу же дружит с jQuery.