php, типсы и триксы
Часто бывает нужно убрать www и завершающие слэши из всех URL. Данную операцию достаточно просто выполнить при помощи кода в .htaccess
#Если вы хотите, чтобы всегда был домен с www
RewriteCond %{HTTP_HOST} ^domen\.ru
RewriteRule ^(.*)$ http://www.domen.ru/$1 [R=301,L]
#Если вы хотите, чтобы всегда был домен без www
RewriteCond %{HTTP_HOST} ^www\.domen\.ru
RewriteRule ^(.*)$ http://domen.ru/$1 [R=301,L]
#Добавить завершающий слэш
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]
#Удалить завершающий слэш
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
git, nix, типсы и триксы
Часто в проекте есть директория uploads/ с вложениями, содержимое в которых не нуждаются в поддержки версионности, для того чтобы не утомлять себя ручным вводом каждой директории можно воспользоваться командой:
$ ls -l uploads | awk {'print "/uploads/"$9"/*"'} > ../.gitignore
Дело сделано, нужные директории теперь не будут включены в репозитарий.
типсы и триксы
Иногда бывает нужно отцентрировать div на странице, это достаточно просто сделать через абсолютное позиционирование:
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
div {
background-color: #000;
height: 500px;
left: 50%;
margin: -250px 0 0 -250px;
top: 50%;
position: absolute;
width: 500px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
Это создаст квадрат Малевича 500×500 пикселей по центу страницы.
nix, shell, типсы и триксы
По долгу службы встала задача переименовать группу файлов в директории по маске ( убрать у php файлов префикс и постфикс ).
Исходные файлы вида aqNameClass.class.php нужно привести к виду NameClass.php
Решается эта задача одной командой shell:
for i in *.class.php; do mv "$i" `echo "$i" | sed "s/\.class//" | sed "s/^aq//"`; done
nix, shell, типсы и триксы
Задача:
примонтировать SD карту на 64G как дополнительный жесткий диск, чтобы не-root мог читать ее и записывать в нее.
Решение:
mount -o uid=<uid> /dev/<dev_id> /mnt/<mount_point>
где,
<uid> — id пользователя ( узнать можно командой id или посмотреть в /etc/passwd )
<dev_id> — устройство sd карты
<mount_point> — каталог в который будет примонтирована SD-карта.
в /etc/fstab добавляем опцию монтированя uid=<uid>
и всё.
nix, shell, типсы и триксы
find . -type d -exec chmod u=rwx,go=rx {} \;<br>find . -type f -exec chmod u=rw,go=r {} \;
или
find . -type d -exec chmod 755 {} \;<br>find . -type f -exec chmod 644 {} \;
nix, типсы и триксы
Запись звука в Linux из консоли.
На моём субноуте есть микрофон, вот подумал, что неплохобы понять как записывать снимать звук с него, вот что нашёл:
Запись в wav:
$ arecord test.wav
Переконвертировать wav в mp3 можно вот так:
$ cat test.wav | lame - > test.mp3
или сразу создать mp3
$ arecord | lame - > test.mp3
Вот так можно записать ядро системы linux в mp3 :)
$ cat /boot/mykernel.img > /dev/dsp & arecord | lame - > test.mp3
nix, типсы и триксы
Вот способ получисть снимок с web камеры из шел.
Искал способ как получить снимок (фото) с web камеры
Наткнулся только на статью про видеозахват через — ffmpeg. Вот ссылка — http://www.newmoldova.com/?q=node/85
Почитав немного ман по ffmpeg попробовал вот такую конструкцию:
$ ffmpeg -f video4linux2 -s 1024x768 -i /dev/video0 -f image2 snapshot.jpg 2>/dev/null
Вроде работает :)
-f video2linux — формат видео для захвата
-s 1024×768 — размер кадра захвата
-i /dev/video0 — файла web камеры
-f image2 snapshot.jpg — выходной тим и имя файла
javascript, типсы и триксы
Небольшая функция на javascript, которая позволяет узнать все свойства объекта
Вот сама функция:
function fnShowProps(obj, objName) {
var result = "";
for (var i in obj) // обращение к свойствам объекта по индексу
result += objName + "." + i + " = " + obj[i] + "\n";
document.write(result);
}
Вот пример исползования:
fnShowProps(window.location, "location")
Результат:
location.pathname = /JavaScript/
location.protocol = http:
location.search = ?8
location.hash =
location.hostname = htmlcssjs.ru
location.href = http://htmlcssjs.ru/JavaScript/?8
location.host = htmlcssjs.ru
location.port =
location.reload = function reload() { [native code] }
location.replace = function replace() { [native code] }
location.assign = function assign() { [native code] }
Источник: http://htmlcssjs.ru/JavaScript/?8
javascript, типсы и триксы
Во несколько способов реализации foreach в javascript
Вариант 1:
for (var key in some_array) {
var val = some_array [key];
alert (key+' = '+val);
}
Вариант 2:
for(i=0, c=arr.length; i<c; i++) {
my_func(arr[i]);
}
Нужно отметить, что второй вариант не совсем реализует foreach, так как перебираются только значения массива без ключей.
nix, типсы и триксы
То что давно хотел узнать :)
Вот так можно найти строку по содержимому файла.
$ find /etc -type f -exec grep -Hn "nameserver" {} \; 2>/dev/null
Вот так можно найти все файлы в каталоге /etc в которых есть слово «nameserver»
Опции grep:
H — выводим имя файла со строкой.
n — номер строки в файле.
Ошибки перенаправляем в /dev/null
При желании можно написать вот такой скрипт:
#/bin/sh
dir='.';
if [ -z $1 ]
then
echo 'Команду нужно запускать вот так: find.str [dir]';
else
if [ -z $2 ]
then
dir=$2
fi
find . -type f -exec grep -Hn $1 {} \; 2>/dev/null
fi
nix, типсы и триксы
Скачал тут недавно книгу из двух текстовых файлов в koi8-r и с переводами строки в стиле Win (^M)
Решил поправить это дело таким вот образом:
$ cat book_p1.txt book_p2.txt | sed 's/\r//' | iconv -f koi8-r -t utf8 > book.txt
Вот так вот :) Unix — это круто!