$ export LESS='-i-P%f (%i/%m) Line%lt/%L'-i - ignore case -P - use promt Все остальное это формат и контент подсказки в нашем случае: [имя поточного файла] ([номер поточного файла]/[количество всего файлов подошедших под маску] Line[номер поточной строки]/[всего строк в поточном файле]
среда, 30 октября 2013 г.
LESS - системная переменная для less
И снова find
Выполнение какой-нибудь команды на каждую строку результата поиска (найденного места(пути к файлу/директории))
find [path/to/dig/into] -exec [command] [command_params] {} \;
{}
Интересные примеры:
# Найти файлы проекта с указанной строкой
find . -exec grep "string_to_find_in_next_path" {} \;
# Вывести список всех директорий проекта
find my_prjdir_in_cur_dir -type d
# Удалить все файлы и директории с именем .svn в директории проекта
find my_prjdir_in_cur_dir "-name" .svn -exec rm -rf "{}" \;
# Найти файлы проекта с указанной строкой и при этом вывести не только строку в файле, но и путь к файлу
find my_prjdir_in_cur_dir -exec grep --with-filename "string_to_find_in_next_path" {} \;
# Вывести в консоль содержимое файлов; -print это ключ для find
# именно он выведет не только в стандартный аутпут, но и в еррор поток пути к найденным файлам,
# так find выводит в консоль путь к файлу, а cat за каждым путем содержимое файла
find my_prjdir_in_cur_dir -type f -print -exec cat {} \;
вторник, 29 октября 2013 г.
Правила приорите символов в Scala
Precedence Rules
The precedence of an operator is determined by its first character.
The following table lists the characters in increasing order of priority
precedence:
(all letters)
|
^
&
< >
= !
:
+ -
* / %
(all other special characters)
Поэтому a + b ^? c ?^ d less a ==> b | c
((a + b) ^? (c ?^ d)) less ((a ==> b) | c)
The precedence of an operator is determined by its first character.
The following table lists the characters in increasing order of priority
precedence:
(all letters)
|
^
&
< >
= !
:
+ -
* / %
(all other special characters)
Поэтому a + b ^? c ?^ d less a ==> b | c
((a + b) ^? (c ?^ d)) less ((a ==> b) | c)
Scala Syntax Summary
Types
Type = SimpleType | FunctionTypeFunctionType = SimpleType ‘= > ’ Type
| ‘( ’ [ Types ] ‘) ’ ‘= > ’ Type
SimpleType = Ident
Types = Type { ‘ , ’ Type }
Расширенная форма записи Бекуса-Наура для представления синтаксиса
Extended Backus-Naur form (EBNF):
| denotes an alternative,
[...] an option (0 or 1),
{...} a repetition (0 or more)
| denotes an alternative,
[...] an option (0 or 1),
{...} a repetition (0 or more)
Начало проекта с мавеном
$ mvn archetype:generateВыбириаем пустой проект, например, который по умолчанию.
Вводим код групы, проекта, выбираем имя проета и версию.
Чтобы запустить, то что у нас получилось
$ mvn compile exec:java -Dexec.mainClass="com.pathto.App"Здесь мы пользуемся услугой плагина Exec(Mojo project) для запуска конкретного класса с методом мейн, кроме того этот плагин умеет передавать аргументы в этот класс через аргемент плагина Exec -Dexec.args.
понедельник, 28 октября 2013 г.
Удаление бинарных логов mysql
В этих логах логируются все запросы в базу.
Кстати они тоже испльзоуются репликами для применения у себя тех же изменений.
Чтобы их коректно удалить нужно в шеле mysql:
Кстати они тоже испльзоуются репликами для применения у себя тех же изменений.
Чтобы их коректно удалить нужно в шеле mysql:
purge binary logs before '2013-06-01 00:00:00';
Замена через Vim
Vi: Search and Replace
Change to normal mode with .
Search (Wrapped around at end of file):
Search STRING forward : / STRING.
Search STRING backward: ? STRING.
Repeat search: n
Repeat search in opposite direction: N (SHIFT-n)
Replace: Same as with sed, Replace OLD with NEW:
First occurrence on current line: :s/OLD/NEW
Globally (all) on current line: :s/OLD/NEW/g
Between two lines #,#: :#,#s/OLD/NEW/g
Every occurrence in file: :%s/OLD/NEW/g
пятница, 25 октября 2013 г.
logrotate
Утилита для ротации логов, работает не как сервис, а обслуживается кноном.
У него есть настройки в
/etc/logrotate.config -- они общие для всех ротированей
Есть также директория
/etc/logrotate.d/ - в нее записываются настройки для конкретных ротированей.
Чтобы проверить конкретную настройку ротации делаем
У него есть настройки в
/etc/logrotate.config -- они общие для всех ротированей
Есть также директория
/etc/logrotate.d/ - в нее записываются настройки для конкретных ротированей.
Чтобы проверить конкретную настройку ротации делаем
# cd /etc/logrotate.d/ # logrotate --force name_of_rot_cnfgs
вторник, 22 октября 2013 г.
High Order Functions
Functions - first-class values. Тоесть в функциоанльных языках мы можем передавать функции как простых/сложных значений в методы и функции.
High Order Functions - функции, которые получают другие функции в параметрах, и/или возвращают функции в своих результатах.
Function type - тип, который определяет, что в параметр будет передаваться функция.
A => B
(A,B...X) => Z
A,B...Z - some types
Currying - название происходит от имени ученого, который это придумал впервые.
Это процесс, который позволяет вводить часть параметров сейчас, а остальные потом, что по факту означает создает функцией функцию.
def sum(f: Int=>Int): (a: Int, b: Int) => Int
В Scala есть сахар этого
def sum(f: Int=>Int)(a: Int, b: Int): Int
Anonynous function syntax: по принципу функционального типа
(x1: T1, ..., xn: Tn) => E
High Order Functions - функции, которые получают другие функции в параметрах, и/или возвращают функции в своих результатах.
Function type - тип, который определяет, что в параметр будет передаваться функция.
A => B
(A,B...X) => Z
A,B...Z - some types
Currying - название происходит от имени ученого, который это придумал впервые.
Это процесс, который позволяет вводить часть параметров сейчас, а остальные потом, что по факту означает создает функцией функцию.
def sum(f: Int=>Int): (a: Int, b: Int) => Int
В Scala есть сахар этого
def sum(f: Int=>Int)(a: Int, b: Int): Int
Anonynous function syntax: по принципу функционального типа
(x1: T1, ..., xn: Tn) => E
воскресенье, 20 октября 2013 г.
Blocks and Lexical Scopes in Scala
Блок:
- ограничивается фигурными скобками {...};
- является наборов определений и выражений;
- последний элемент в блоке и будет результатом блока;
- сам по себе блок является выражением;
- блок определяет область видимости определений(констант и переменных), созданных внутри его.
Lexical Scope:
пространство видимости, которое определяет граници видимости опредения - определение видимо в блоке, в котором оно было определено, а также во вложенных блоках. Опредения в отцовских блоков, перекрываются локальными определениями поточного блока с теми же самыми именами, и отцовсткие не изменяются в поточном и во вложенных блоках.
- ограничивается фигурными скобками {...};
- является наборов определений и выражений;
- последний элемент в блоке и будет результатом блока;
- сам по себе блок является выражением;
- блок определяет область видимости определений(констант и переменных), созданных внутри его.
Lexical Scope:
пространство видимости, которое определяет граници видимости опредения - определение видимо в блоке, в котором оно было определено, а также во вложенных блоках. Опредения в отцовских блоков, перекрываются локальными определениями поточного блока с теми же самыми именами, и отцовсткие не изменяются в поточном и во вложенных блоках.
Expressions and statement
Expressions - выражение программного кода, которое вернет конкретное значение после его выполнения, элементы которого часто вложены и служат для вычисления или принятия решения в вычислении, являются звеном в общей цепочке вычисления результирующего значения.
Statement - может быть выражением, а вообще это любой набор программного кода, составные части которого могут быть независимы, стейтмент не обязан возвращать результат, он просто обьединяет некие значения и выражения.
Statement - может быть выражением, а вообще это любой набор программного кода, составные части которого могут быть независимы, стейтмент не обязан возвращать результат, он просто обьединяет некие значения и выражения.