Ярлыки

понедельник, 28 февраля 2011 г.

ubuntu 10.04 создание загрузочного флеш

Universal USB Installer

Создание загрузочной флешки с Ubuntu Server

 

PHP если stripos не работает для кирилицы

Нужно использовать mb_stripos($t_str, 'гним',0,'utf-8');

link

PHP Различие между кавычками(") и апострофом (')

1) Имена переменных, заключенных в кавычки, заменяются соответствующими значениями, а строки в апострофах интерпретируются буквально.

  Пример:

$a="текст";
$x="Переменная a равна: $a";
$y='Переменная a равна: $a';
echo $x."
".$y;

  В результате:

Переменная a равна: текст
Переменная a равна: $a

  2) В строках, заключенных в кавычки, распознаются все служебные символы, а в апострофах только "\\".

  Пример:

$a='c:\new';
$b="c:\new";
echo $a."
".$b;

  В результате:

c:\new
c:
ew

  В строке "c:\new" есть служебный символ перевода строки - "\n".
link

Таблица символов

http://www.templatebest.ru/specsimvol.php

пятница, 25 февраля 2011 г.

RegExp и UTF-8

PCRE без всяких перезагрузок работают с НЕлатиницей! Нужно всего-навсего добавить модификатор u. Тоесть регулярка получится примерно такой -
preg_replace('#(тут че-то)#iu');

link 







RegExp

http://www.sat-fishers.com/forum/showthread.php?s=2718fd8c64434fa4b748032a82981257&p=62479
Справочник
примеры

Ubuntu clipboard

http://mydebianblog.blogspot.com/2011/01/linux.html

Обзор linux regex редакторов

http://vaultsoft.ru/node/30

четверг, 24 февраля 2011 г.

RegExp взять текст в кавычках

http://habrahabr.ru/blogs/regex/55863/

Linux Изменение прав доступа к файлу

Команда chmod используется для установки прав доступа к файлу. Только собственник файла может изменять права доступа к этому файлу. Синтаксис команды chmod:
chmod {a,u,g,o}{+,-}{r,w,x} filenames
Сначала после имени команды вы ставите один или несколько из следующих символов: a (сокращение от all — все), u (сокращение от user — пользователь), g (сокращение от group — группа), или o (сокращение от other — прочие). Затем вы точно определяете, добавляете ли вы права (+) или убираете (-). Наконец, вы пишете один или несколько символов из следующего набора: r (сокращение от read — чтение), w (сокращение от write — запись), x (сокращение от execute — исполнение). Вот некоторые примеры правильных команд:

chmod a+r file
Даёт всем пользователям право на чтение файла.
chmod +x file
Аналогично предыдущему примеру. Если никакие из набора символов a, u, g или o не указаны, то это эквивалентно указанию символа a.
chmod og-x file
Лишает всех пользователей, кроме собственника, права на исполнение файла.
chmod u+rwx file
Разрешает собственнику читать, изменять и исполнять файл.
chmod o-rwx file
Запрещает читать, записывать и исполнять файл всем пользователям, кроме собственника файла и пользователей из группы. link

RegExp

http://m.gidrm.ru/blog/internet/post/Kollekcii_shpargalok
http://www.php.ru/manual/ref.pcre.html
http://www.providerz.ru/articles/php/regexp-intro.html
http://phpclub.ru/detail/article/regexp_1

понедельник, 14 февраля 2011 г.

PHP Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?

если выводится такая ошибка значит в заголовке прописан протокол http
т.е. вместо http://localhost нужно писать localhost
link

Стиль сайта в виде липких заметок (CSS3 и HTML5)

link

вэб-сервис для заметок

Нужен движок для заметок

Getting Things Done(GTD)

управление проектом на 1 странице Кларк Кэмпбелл

http://www.rememberthemilk.com/

forum

авто. Подтянуть клеммы аккумулятора

1.Ослабить крепления и снять клеммы.
2.Промазать контакты аккумулятора тонким слоем литола24.
3.Плотно надеть клеммы, покрутить-поерзать ними.
4.Плотно затянуть.

пятница, 11 февраля 2011 г.

запустить скрипт от имени рута

link

Выключение линукса по таймеру

можно использовать Cron
crontab -e
затем добавить строку
* 22 * * * shutdown -h now
это выключает комп каждый день в 22 часа. Если надо по дням недели, то вместо последней звездочки можно перечислить через запятную дни от 1 до 7.
link
link
link
link
ubuntu
wiki
link

либо можно воспользоваться коммандой
shutdown -h +30 выключить комп через 30 минут
shutdown -h 22:30 выключит комп в 22:30
можно добавить строку
username ALL=(ALL)NOPASSWD: /sbin/shutdown
в файл /etc/sudoers
для того чтобы не ввоить пароль каждый раз

Sudo для нескольких комманд

Программу sudo критикуют, за невозможность выполнять некоторые команды. К примеру:
sudo cat sources.list > /etc/apt/sources.list
выдаст ошибку прав доступа (так как с правами root выполняется только процесс cat, а перенаправление выполняет shell с правами обычного пользователя), хотя такое можно сделать, использовав конвейер:
cat sources.list | sudo tee /etc/apt/sources.list
также ничто не мешает выполнить шелл с административными правами, а строку к выполнению взять в кавычки, используя параметр шелла «-с»:
sudo sh -c 'cat sources.list > /etc/apt/sources.list'
или же попасть в шелл интерактивно аналогично работе su, используя параметр -s
sudo -s
или выполнив
sudo sh

WiKiPedia

sudo настройка

Настройки sudo хранятся в файле /etc/sudoers
Если есть желание получить максимальные права можно добавить вашего пользователя в группу sudo.
Пример строки из sudoers
jorge  ALL=(root) /usr/bin/find, /bin/rm
В первом столбце указывается пользователь или группа, к которым применяется данное правило sudo. В данном случае, это пользователь jorge. Если слову в этой колонке, предшествует символ %, он определяет, что это значение является не пользователем, а группой. Это связано с тем, что в системе могут быть пользователи и группы с одинаковыми именами.
Второе значение (ALL - все) определяет, к каким хостам будет применяется данное правило sudo. Этот столбец полезен в тех случаях, когда действие sudo распространяется на несколько систем. Для настольной системы Ubuntu, или системы, в которой вы не планируете распространять роли sudo на несколько систем, вы можете смело оставить это значение равным ALL, которое является универсальным обозначением, соответствующее всем хостам.
Третье значение, указанное в скобках, определяет, в качестве какого пользователя или пользователей может выполнять команду пользователь, указанный в первом столбце. Здесь указано значение root, что означает, что пользователю jorge будет разрешено выполнять команды, указанные в последнем столбце, в роли пользователя root. Вместо этого значения также можно задать ALL, указывающее, что jorge имеет право выполнять команды в роли любого пользователя системы.
Последнее значение (/usr/bin/find, /bin/rm) представляет собой список команд, разделенных запятой, которые пользователь, указанный в первом столбце, может выполнять в роли пользователя (пользователей), указанного в третьем столбце. В данном случае, мы разрешаем пользователю jorge запускать команды find и rm в роли пользователя root. Вместо этого значения также можно задать ALL, указывающее, что jorge может выполнять все команды в системе в роли пользователя root.
Проверяем
sudo find . ! -name '*.mp3' -exec rm -f \\{\\} \\;
link
ubuntu
forum


управление пользователями в Linux

adduser - добавить пользователя
passwd - задать пароль пользователю (-d удалить пароль)
gpasswd - добавление/удаление в группу
userdel - удалить пользователя

Linux добавить пользователя в группу

sudo gpasswd -a user somegroup добавляет пользователя user в группу somegroup
sudo gpasswd -d user somegroup удаляет пользователя user из группы somegroup

Vi cheat-sheets

link

Vi переключение режимов

В редакторе vi есть два основных режима: командный режим и режим вставки. По умолчанию, работа начинается в командном режиме.

Набрав в коммандном режиме i можно перейти в режим вставки.
Для возвращения в коммандный режим необходимо набрать Esc.

PHP Запуск программ из php скрипта

 комманда exec
 
 
// outputs the username that owns the running php/httpd process
// (on a system with the "whoami" executable in the path)
echo exec('whoami');?>
 
 
 

четверг, 10 февраля 2011 г.

php faq

link

Как выйти из команды man

Как я уже успел убедится, это один из самых задаваемых вопросов при работе в консоли Linux. На самом деле — нет ничего проще. Выйти из консоли можно пользуясь 3 разными элементарными способами:
  • Первый — ввести символы :q или Q или :Q
  • Второй — нажать Ctrl + Q
  • Третий — нажать Ctrl + Z
link
Секреты команды man

рефакторинг

link

среда, 9 февраля 2011 г.

Синхронизация времни в Linux

Для синхронизации используется протокол NTP(Network Time Protocol)
можно воспользоваться или коммандой
/usr/sbin/ntpdate -t 10 clock.isc.org
/sbin/hwclock --systohc
которая синхронизируется с сервером времени clock.isc.org можно выбрать и другой сервер времени

либо нужно настраивать демон ntpd который будет постоянно синхронизировать время

link
link

включение компьютера по таймеру в linux

1) проверяем ядро. Оно должно быть версии не ниже 2.6.22
2) проверяем наличие ls /sys/class/rtc/rtc0/wakealarm Если есть, это радостный признак того, что у вас все модули общения с cmos установлены (должен быть rtc-cmos) или вкомпиленов ядро.
это можно проверить введя комманду dmesg | grep rtc
если получаем
RTC can wake from S4
то есть поддержка

3)даем комманду
sudo sh -c "echo 0 > /sys/class/rtc/rtc0/wakealarm"
для очистки bios
4)даем комманду
date -u --date "17:30:00" +%s | sudo tee /sys/class/rtc/rtc0/wakealarm
для записи времени когда компьютер должен включиться
5)проверяем
cat /proc/driver/rtc
если настройки сохранились все в порядке
6) выключаем компьютер и ждем его включения

link
link
link
link
Дополнительная информация
/proc/acpi/wakeup
mythtv
apmsleep
link
link

тренажеры десятипальцевого метода

link
stamina.ru
ergosolo.ru
klavogonki.ru
klava.org

вторник, 8 февраля 2011 г.

nvram-wakeup

программа для автоматического запуска компьютера по таймеру
link
link
link

guess-helper используется для получения конфига nvram-wakeup.conf если материнская плата не поддерживаеться..

PHP array_insert

В PHP отсутствует функция для вставки нового элемента массива в указанную позицию. Вот одна из простых реализаций этой функции:

function array_insert(&$array, $insert, $position) {
array_splice($array, $position, 0, array($insert));
}

link

понедельник, 7 февраля 2011 г.

список всех провайдеров в СПб

grinkod

PHP Функции обращения к сессиям

session_start() etc
link

PHP Сохранить массив в файл

Функции для чтения/записи массива в файл.

function load_array_dump($filename) {
$fp = fopen($filename,»r»);
$content = fread($fp,filesize($filename));
fclose($fp);
eval(‘$array=’.gzuncompress(stripslashes($content)).’;');
return($array);
}

function save_array_dump($filename, $array) {
$dump = addslashes(gzcompress(var_export($array,true),9));
$fp = fopen($filename, «wb+»);
fwrite($fp, $dump);
fclose($fp);
}


link

суббота, 5 февраля 2011 г.

пятница, 4 февраля 2011 г.

Интересная гостинница

http://hotelrachmaninov.ru/

Использование Readahead

Это руководство предполагает использование командной стоки для выполнения некоторых команд, и использование приложений readahead-list и readahead-watch, профилирующих загрузку. Изменения в системе легко обратимы, и худшее, что может произойти - это сокращение скорости входа в систему (какая ирония!). Конечно, с того момента, как Вы с правами root сделаете какие-нибудь изменения, ошибка в наборе некоторых команд может привести к необратимым повреждениям ПО или данных. Эти изменения не поддерживаются разработчиками Ubuntu. Вам, наверное, не следует пытаться делать это, если у вас более 512MB ОЗУ.

Часть 1: профилирование последовательности входа в систему

В первую очередь, нам нужно сделать запрос, чтобы readahead проследил последовательность загрузки системы и отметил все файлы, которые считываются в это время. Продвинутые пользователи могут указать это во время загрузки, для этого есть аргумент «profile», призванный оптимизировать загрузку Ubuntu. Нам, исключительно вручную, нужно будет сымитировать, что делает эта загрузочная опция, но сохранить вывод в разные файлы.

Для начала, давайте сохраним наш список readahead в директории «~/.readahead»:

$ mkdir ~/.readahead

Теперь завершите сеанс и нажмите CTRL+ALT+F1 для входа в терминал. Запустите профилирование:

$ sudo readahead-watch -o ~/.readahead/gnome.root /

Это загрузит Ваш диск на некоторое время (может даже на несколько минут), потом вернет командную строку. Профилирование теперь в фоновом режиме наблюдает за всеми действиями. Затем без завершения сеанса вернитесь в GDM (ALT+F8) и выполните обычный вход.

После того, как Вы полностью войдете в систему, нажмите CTRL+ALT+F1, чтобы вернуться в терминал и запустите:

$ sudo killall readahead-watch

$ sudo chown jdong:jdong ~/.readahead -R

Замените jdong:jdong на Ваши имя пользователя и группу. Теперь нужно немного сократить список. Особенно если у Вас на рабочем столе есть есть большие файлы (например 1Гб AVI файлы), последовательность загрузки может касаться и их, потому что readahead думает, что их следует загрузить в память целиком! В терминале запустите:

$ cat ~/.readahead/gnome.root | xargs -i ls -lk {} | sort -rn -k +5 | less

Это отобразит все файлы, которые readahead хочет прокешировать, отсортированные в порядке убывания размера. Пятый столбец (перед датой) показывает размер файла в КБ (килобайтах). Удостоверьтесь, что там нет очень больших файлов. Если есть размером 10 000 КБ или около того, то вероятно не стоит использовать предзагрузку. Вы можете удалить ненужные файлы из списка предзагрузки, открыв «~/.readahead/gnome.root» в любимом редакторе и удалить соответствующую строку.

Если у Вас /home расположен на отличном от root (/) разделе, Вам следует повторить Часть 1 для каждого раздела, заменяя gnome.root различными именами, и заменяя точку монтирования «/» на интересующую.

Часть 2: Подключаем все в последовательность входа в сессию

Далее нам следует сообщить Ubuntu, чтобы она выполняла readahead при каждом входе в сессию. Я собираюсь использовать «/etc/X11/Xsession.d» для этих целей, но если Вы предпочитаете другой способ выполнить предзагрузку всего, воспользуйтесь моим!

Создайте файл, называемый «/etc/X11/Xsession.d/00readahead», и впишите в него следующее:

$ for list in ~/.readahead/*; do readahead-list $list & done

wait

Сохраните файл, сейчас Вы можете перезагрузиться, чтобы проверить изменения. Вы заметите, что вход «подвис» на оранжевом экране, до тех пор, пока диск не стал работать без особой нагрузки, затем, после того как вход в сессию полностью прокеширован однажды, загрузка ускорится. Таким образом, загрузка моей системы составила 30 секунд, заметное улучшение.

Часть 3: Подключаем в последовательность загрузки

Очень часто бывает, что мы не входим немедленно, как только появляется запрос. Мы можем сходить за чашечкой кофе, или все компьютеры в лаборатории включаются до того, как придут студенты. Может иметь значение кеширование входа в сессию как часть загрузки. Откройте «/etc/rc.local» в Вашем любимом текстовом редакторе и перед строкой «exit 0» добавьте:

$ for list in /home/jdong/.readahead/*; do readahead-list $listdone

Заметьте, что Вам надо использовать свое имя пользователя здесь, сейчас мы не переносим это в фон (Мы можем, но не имеем достаточно причин для этого).

Сейчас перезагрузитесь и ждите, пока работа диска не остановится перед тем как войти. На этот раз скорость входа составила 19 секунд.

У Вас может возникнуть два вопроса по этому поводу:

1. Как много времени займет повторный вызов readahead для файлов, которые уже были однажды кешированы? Примерно 0,05 секунды на вызов readahead во второй раз с тем же списком.

2. Как много сверх времени это добавляет к загрузке, если readahead в фоне все еще выполняется и Вы пытаетесь войти? Около 2 секунд на моей конфигурации.

Заключение

В моем случае применение readahead привело к 10 секундному улучшению в скорости загрузки в худшем случае, и выдающийся двукратный прирост, когда система простаивала 2 секунды перед запросом на вход.

Это очень ценные улучшения, и они будут все лучше, если будет использована лучшая версия этих настроек в Ubuntu. Основная идея должна быть очень проста, адаптированный файл «/etc/readahead/readahead.gnome» подставляется в систему и подключается в Xsession.d скрипт.

Очень много других, долго загружающихся приложений приходит на ум, пока диск нагружен (Firefox? Openoffice? Eclipse?). Вы можете использовать похожую процедуру написав «wrapper script», который будет выполнять readahead-list при первом вызове списка, затем запустите приложение с базовыми аргументами. Мне очень интересно услышать об улучшениях, которые даст этот метод.

Отмена readahead

Удалять, удалять и удалять! Удалите директорию «~/.readahead», удалите «/etc/X11/Xsession.d/00readahead», и удалите строку, которую Вы добавили в «/etc/rc.local».


link

Ubuntu Games

Search and check the following: Tremulous , a decent first-person shooter, FlightGear experienced and accurate flight sim , Gridwars , flashy retro topdown shooter, and vDrift Rail racing simulator.

четверг, 3 февраля 2011 г.

Минимальная Ubuntu

link
link

Ubuntu Customization Kit

программа для создания своей версии установочного диска
link
link
link
link
link

ubuntu minimal cd + OpenBox

link
link
link

Очистка Ubuntu от лишних приложений

В описании к метапакету ubuntu-desktop (который сам по себе ничего не содержит, а просто имеет большое число зависимостей, которые и устанавливаются при установке системы), имеется строчка «Recommends», которая содержит пакеты, которые хоть и устанавливаются при установке системы, но которые можно безболезненно удалить, и они не потянут за собой жизненно необходимые пакеты.
Увидеть эту строчку можно так:
apt-cache show ubuntu-desktop | grep Recommends

link

OpenBox

установка openBox.
sudo aptitude install openbox
Настройка внешнего вида рабочего стола.
sudo aptitude install obconf
В разделе Apperance увеличить размер шрифта заголовка, это увеличит и кнопки окон.
Настройка меню openbox.
sudo aptitude install obmenu
link

Выбор дефолтного оконого менеджера kdm или gdm в Ubuntu

В процессе моих экспериментов :) с KDE приложениями в Ubuntu я столкнулся с тем, что у меня поменялась графическая заставка входа в систему. Это было связано с тем, что в какой то момент оконный менеджер поменялся с gdm(Gnome) на kdm(KDE). Не сказать, что это что то страшное, но интересно было, как вообще можно выбрать дефолтный оконный менеджер. Выяснилось, что в Убунте выбор менеджера окон определяется файлом /etc/X11/default-display-manager. Весь файл состоит из одной строки /usr/sbin/gdmили/usr/bin/kdmсоответственно, которая и определяет какой будет запущен менеджер окон.
Того же результата можно добиться командами sudo dpkg-reconfigure gdm и sudo dpkg-reconfigure kdm

link

Multiseat on Ubuntu

link

среда, 2 февраля 2011 г.

Open Sound System

link

Virtualbox 4 on Ext4 error – host I/O cache will now be enabled

если у вас в VirtualBox при запуске системы появилось сообщение
"The host I/O cache for at least one controller is disabled and the medium... "
необходимо:
- в свойствах системы войти в меню носители
- выбрать SATA контроллер
- включить галочку "Кэширование операций ввода\вывода"

link

Win 7 у вас нет разрешений на запись файла

1. Откройте свойства папки;
2. Перейдите на вкладку "Безопасность";
2. Нажать на кнопку "Дополнительно";
5. Далее в открывшемся диалоге выбираем вкладку "Владелец" и кнопку "Изменить";
6. Выбираем имя пользователя\имя компьютера и нажимаем на кнопку "Применить", "ОК" в информационном диалоге и "ОК" в диалоге выбора владельца;
7. Теперь переходим на вкладку "Разрешения" и нажимаем на кнопку "Изменить разрешения...";
8. В следующем диалоге выбираем "Пользователи\имя компьютера" и нажимаем на кнопку "Изменить";
9. Выбираем "Разрешить полный доступ" и давим на "ОК";
10. Далее кнопкой "ОК" закрываем все диалоги получения прав и разрешений.
link