суббота, 23 октября 2010 г.
четверг, 21 октября 2010 г.
Безопасное извлечение флешки для Linux
Большинство пользователей операционной системы Windows привыкли к маленькому значку, который появляется в "трее" при подключении съемного накопителя. С помощью этого значка пользователи Windows безопасно извлекают флешки из компьютера.
В Linux, при подключении съемного устройства, появляется ярлык на рабочем столе. Для комфортной работы этого вполне хватает, но если Вам просто необходимо извлекать флешки способом, который принят в Windows, то это можно легко поправить.
Зачем это нужно?
Вынесение инструмента для безопасного извлечения флешки на панель Gnome может сделать работу более быстрой, так как чем меньше лишних телодвижений, тем лучше. Это позволяет быстрее отключать подключенную флешку не сворачивая развернутые окна или не переходя на новый рабочий стол.Для некоторых пользователей, которые только перешли с ОС Windows, первое время будет не хватать привычного ярлыка в "трее".Операционная система Linux - это гибкий инструмент, интерфейс которой можно настроить так как Вам этого захочется.
Безопасное извлечение флешки для Linux:
Чтобы добавить ярлык безопасного извлечение флешек для Linux нам нужно установить один пакет. В консоли набираем команду:
$ sudo apt-get install ejecter
Чтобы отключить автоматическое монтирование дисковых устройств и SMB-шар на рабочий стол необходимо исполнить команду:
gconftool-2 --set /apps/nautilus/desktop/volumes_visible --type bool "no"
gconftool-2 --set /apps/nautilus/desktop/volumes_visible --type bool "yes"
Важно понимать!
Программа по команде пользователя может отмонтировать указанное устройство. После отмонтирования, питание к флешке будет подаваться, по этому световой индикатор на флешки будет мигать. После отмонтирования флешку без какого-либо риска можно выдернуть из USB.
Большинство людей ошибочно считают, что если индикатор питания на флешке моргает, то выдергивать флешку нельзя. Отключать флешку нельзя только тогда когда файловая система подключена (примонтирована). Так как ОС Windows не умеет отмонтировать дисковые разделы без отключения питания, то принято, что работа с файловой системой остановлена только после отключения питания USB.Ярким примером опровергающим этот миф может выступать подключение/отключение USB-принтера, который можно подключать и отключать в любое время без риска для последнего.
вторник, 19 октября 2010 г.
вторник, 12 октября 2010 г.
MySQL шпаргалки
Работа с бекапами
Делаем бекапmysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
Создаём структуру базы без данных
mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql
Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql
Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Создание бекапа с указанием его даты
mysqldump -uUSER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`
Заливаем бекап в базу данных
mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql
Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE
Удобно использовать бекап с дополнительными опциями
-Q -c -e
, т.е. mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
, где:- -Q оборачивает имена обратными кавычками
- -c делает полную вставку, включая имена колонок
- -e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее
Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD
А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE
Для таблиц InnoDB надо добавлять --single-transaction, это гарантирует целостность данных бекапа.
Для таблиц MyISAN это не актуально, ибо они не поддерживают транзакционность.
Подробнее
Общие факты
- Полезно под каждую базу на боевом сервере создавать своего пользователя
- Кодировка базы может быть любой, если она UTF8
- В большинстве случаев лучше использовать движок InnoDB
- В php лучше забыть про сильно устаревшее расширение mysql и по-возможности использовать pdo или mysqli
- Новую копию MySQL всегда можно настроить и оптимизировать
- Без особой нужды не стоит открывать MySQL наружу. Вместо этого можно сделать проброс портов
ssh -fNL LOCAL_PORT:localhost:3306 REMOTE_USER@REMOTE_HOST
Работа с данными
Числа
- Не ставьте для типа INTEGER свойство UNSIGNED, если вы не знаете что делайте. Из коробки php не поддерживает числа такого большого размера
- Связанные таблицы («Foreign keys») должны иметь полное сходство по структуре ключей. Т.е. если у нас на одной таблице для поля указано «INTEGER UNSIGNED DEFAULT 0 NOT NULL» то и на другой должно быть указано аналогично
- Для хранения булевых значений, нужно использовать TINYINT(1)
- А деньги лучше хранить в DECIMAL(10, 2), где первое число обозначает количество всех знаков, включая запятую, а второе — количество знаков после запятой. Итого, у нас получится что DECIMAL(10,2) может сохранить 9999999,99
Строки
- В старых версиях (до 5.0.3) VARCHAR была ограничена 255 символами, но сейчас можно указывать до 65535 символов
- Помните, что тип TEXT ограничен только 64 килобитами, поэтому что бы сохранять «Войну и Мир» пользуйтесь «LONGTEXT»
- Самая правильная кодировка для вашей БД UTF8
Даты
Не забывайте, что- DATE, TIME, DATETIME — выводятся в виде строк, поэтому поиск и сравнение дат происходит через преобразование
- TIMESTAMP — хранится в виде UNIX_TIMESTAMP, и можно указать автоматически обновлять колонку
- Сравнивая типы данных DATETIME и TIMESTAMP, не забывайте делать преобразование типов, например:
SELECT * FROM table WHERE `datetime` = DATE(`timestamp`)
Перечисления
- Для перечислений правильно использовать тип ENUM
- Правильно пишется так: ENUM('мама', 'мыла', 'раму')
- Можно ставить значение по-умолчанию, как и для любой строки
- В базе поле с перечислением хранится как число, поэтому скорость работы — потрясающе высокая
- Количество перечислений ~ 65 тысяч
help.scibit.com/mascon/masconMySQL_Field_Types.html
Отладка
- Если запросы тормозят, то можно включить лог для медленных запросов в /etc/mysql/my.cnf
- А потом оптимизировать запросы через EXPLAIN
- И наблюдать за запросами удобно через программу mytop
Анонс - что ждет Total Commander 8?
Намечается радикальный поворот в разработке известного файлового менеджера Total Commander. Его автор, Кристиан Гхислер, закончил первый этап портирования своего известного приложения на Lazarus/Free Pascal. На этот этап адаптации кодовой базы ушел месяц интенсивной работы.
Напомним, что этот известный файл-менеджер всё это время, вплоть до текущей 7-мой версии, разрабатывался на Delphi 2. Такое упорство в сохранении старой версии Delphi стоило просто гигантских дополнительных усилий для Кристиана. Например, поддержка UTF для своего приложения в Dephi 2 была написана им фактически с нуля, поддержка OLE и платформы x64 и прочее-прочее пришлось реализовывать также вручную. Недавно автор опубликовал на своем форуме запись, что он успешно прошел самую тяжелую первую часть проекта по переносу TC на новую языковую платформу:
"В эту пятницу мне наконец удалось впервые целиком скомпилировать TC с помощью Lazarus. Он запускается, но многие функции пока неправильно работают, в основном потому, что Lazarus программно блокирует обработку стандартных сообщений Windows, например WM_PAINT. Поэтому, впереди еще предстоит много работы."
Подписаться на:
Сообщения (Atom)