2009-08-18

MySQL, phpMyAdmin 3, root без пароля и backup.

phpMyAdmin не желает принимать авторизацию без пароля.

Правим файл /usr/share/phpmyadmin/libraries/config.default.php
# Строка 227:
$cfg['Servers'][$i]['nopassword'] = true;
# Строка 363
$cfg['Servers'][$i]['AllowNoPasswordRoot'] = true;

Забыт пароль root и его надо сменить или убрать вовсе.

Гасим MySQL сервер, например так:
$ sudo /etc/init.d/mysql stop
Запускаем его без учета привелегий:
$ sudo mysqld --skip-grant-tables
В консоли mysql вносим необходимые изменения в привелегии:
$ sudo mysql
mysql> UPDATE mysql.user SET Password='пароль_или_ничего' WHERE User='root';
mysql> FLUSH PRIVILEGES;
Перезапускаем сервер.

from sontan.name import this
Создание backup базы данных.

$ mysqldump --all-databases --user=NAME --password=PASS > /home/USER-NAME/sql-dump.sql

--all-databases можно заменить на конкретное имя БД.

Задать кодировку в скрипте:
--default-character-set=charset_name

Чтобы в коде дампа была команда установки кодировки:
--set-charset

И сожмем результат в gzip:
gzip --best /home/USER-NAME/sql-dump.sql

Читаем man mysqldump.

Редактируем текст в Firefox через Vim

Сразу к делу. Для того, чтобы редактировать тексты в полях форм интернет-страниц, для браузера Firefox есть замечательный плагин "It's all text!". Его настройки позволяют задать в том числе и горячую клавишу, что само по себе прекрасно. Представьте - переходите в поле ввода, чтобы отписаться на форуме или в гостевой, нажимаете сочетание клавиш - и пишете в вашем любимом редакторе, а сохраняя текст тем самым отправляете его в браузер. Красота!
Но что, если вы хотите воспользоваться консольным Vim?
При настройке плагина нужно указать полный путь к файлу редактора. Ну и запустим мы Vim. Ну и будет он где-то в бэкграунде. Неудобно! Нужно завернуть vim в консоль.
Хотел бы я воспользоваться таким способом, да только параметры запуска плагин не передает как надо. Что, руки вверх?
На помощь к нам спешит скрипт из трех строк. Я накидал его на питоне, но наверняка можно и десятком других способов. Делаем скрипт исполняемым и в настройках плагина указываем путь к нему. Назначаем горячую клавишу (у меня это Alt-W) и радуемся удобству.

#!/usr/bin/env python
import os,sys
os.system('gnome-terminal -e "vim %s" ' % sys.argv[1])

Или на bash:

#!/bin/bash
gnome-terminal -e "vim \"$*\""

2009-08-12

SSH через http-proxy

Выжимка из этой статьи для конкретной ситуации.
Имеем: Ubuntu 9.04 и анонимный http-proxy (в моем случае Usergate) для выхода в интернет с работы.
Задача: подключиться по ssh к хостингу на masterhost.
Решение:

$sudo apt-get install corkscrew

~/.ssh/config:
Host uXXXXX.ssh.masterhost.ru
ProxyCommand corkscrew proxy_ip_address proxy_port %h %p

Готово.

2009-08-11

Программа для изучения Библии в Linux: добавлен перевод KJV.

Собственно, тема все раскрывает. Теперь в программе есть два перевода - русский Синодальный с апокрифами и King James version без апокрифов.
http://files.mail.ru/GQ0PHF
Особенности:
- поиск английского текста - без учета регистра, русского - с учетом регистра;
- просмотр параллельных мест - по клику на номер стиха;
- выделение текста и клавиша F5 - поиск выделенного фрагмента;
- клик по названию найденного фрагмента - показать весь текст главы;
Есть баг - если смотреть русские тексты апокрифов, потом перейти в английский перевод, закрыть программу и снова запустить - она не откроется, т.к. ищет тексты апокрифов в KJV и не находит. Будет исправлено, пока же просто старайтесь так не делать. В случае чего - удалите файл ~/.Bible.conf и все будет запущено с настройками по умолчанию.

VIM: как назначить запуск скриптов на горячую клавишу

Задача: по нажатию F5 передавать скрипт разным программам, в зависимости от расширения файла (как это реализовано в SciTE).
Вот пара вариантов ее решения. Просто добавим в ~/.vimrc один из этих блоков.

1) Написание функции:

function Run()
let $ext=expand("%:e")
if $ext=="py"
!/usr/bin/env python "%"
elseif $ext=="php"
!/usr/bin/env php "%"
elseif $ext=="html" | $ext=="mako" | $ext=="htm"
!firefox "%"
endif
endfunction
map <F5> :call Run()

Здесь мы получаем расширение файла % через модификатор :e, присваиваем его переменной $ext, после чего по этому признаку решаем, что будем делать с файлом. Потом привязываем вызов функции к горячей клавише F5.

2) Использование автокоманд:

autocmd BufEnter *.py map <F5> !/usr/bin/env python %
autocmd BufLeave *.py unmap <F5>
autocmd BufEnter *.php map <F5> !/usr/bin/env php %
autocmd BufLeave *.php unmap <F5>

Теперь при редактировании скрипта за F5 закреплена команда запуска, а при потере фокуса эта привязка сбрасывается.

Оба способа имеют право на существование, но я остановился на первом.

P.S. Мой .vimrc