Author Archives: alex

Простой скринсейвер для Линукса

Xscreensaver – хорошая прога и во многом отвечает требованиям, но у нее есть одна дурацкая особенность – запаролевать экран при пробуждении из спящего режима. А спросонья тыкать негнущимися пальцами, не помня какой язык ты вчера оставил на клавиатуре или случайно нажал Caps Lock, не особенно и приятно. Где эту фичу отключить, я не нашел. Наверное, она вкомпелированна прямо в двоичный код.

Однако на Линуксе скринсейвер не особо и нужен, поскольку Xorg располагает встроенным скринсейвером, который просто выключает экран командой

xset s blank ; sleep 1 ; xset s activate

Для автоматического выключения экрана остается только задать время неактивности юзера, например 10 минут.

Для этого мы установим прогу xprintidle, которая в миллисекундах и считывает время простоя пользователя. 1 минута = 60000 миллисекунд.

sudo apt-get install xprintidle

А дальше я написал на Python простой скрипт

screensaver.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/python
# -*- coding: utf-8 -*-
#---------------------------

#inactivity = 60000	# 1 min
#inactivity = 300000	# 5 min
inactivity = 600000	# 10 min

# 1 min = 60000 milliseconds
#---------------------------

import subprocess


idletime = subprocess.Popen( 'xprintidle', stdout=subprocess.PIPE ).communicate()[0]
		
if int(idletime) >= inactivity:
	print 'Screen OFF!'
	subprocess.call(["xset", "s", "blank"])
	subprocess.call(["sleep", "1"])
	subprocess.call(["xset", "s", "activate"])
else:
	print 'Idle', str(idletime).replace('\n',''), 'msec'

 

10 минут простоя пользователя откомментированы на линии 7. Вы можете задать свое время.

Теперь поместим файл screensaver.py в папку /opt, дадим ему разрешение x и сделаем для него кронджоб на запуск каждую минуту

chmod a+x /opt/screensaver.py
crontab -e

*/1 * * * * DISPLAY=:0 /opt/screensaver.py

Инжой!

Как запускать скрипты на Python прямо из WordPress

1. В вордпрессе устанавливаем плагин Insert PHP.

2. В новый пост или страницу вставляем код, где указываем полный путь до питонного скрипта:

[insert_php]
$python = `python /home/user/hello.py`;
echo $python;
[/insert_php]

3. А сам питонный скрипт такой:

#!/usr/bin/python

print("Hello World!")

Просто.

Млечный Путь

2017-09-03 00:00 Баян

А. Рыбников. Млечный Путь. Играет А. Иванов.

Я купил баян Тула-209, лэптоп Dell Precision 6400, зеленый экран и сделал видео на Убунте в kdenlive.

My Videos

Categories

None
Баян
Бэкграунд
Отдых
Работа

None

video

2017-09-11 00:00 None

Электронный пюпитр с USB педалью

Это я придумал электронный пюпитр с USB педалью.

Баян

video

2017-09-03 00:00 Баян

А. Рыбников. Млечный Путь. Играет А. Иванов.

Я купил баян Тула-209, лэптоп Dell Precision 6400, зеленый экран и сделал видео на Убунте в kdenlive.

Бэкграунд

video

2017-09-03 00:00 Бэкграунд

Дерево

Отдых

video

2017-09-11 00:00 Отдых

None

video

2017-09-03 00:00 Отдых

Рождество 2016

Работа

video

2017-09-03 00:00 Работа

Сверкающие водостоки

video

2017-09-03 00:00 Работа

Крыша в Ватерлоо

Как руссифицировать MySQL

MySQL – это система управления базами данных, в которых данные хранятся в таблицах. У нее нет графического интерфейса, и если подключить MySQL к LIbreOffice Base, то получится бесплатный MS Access с широкими возможностями.

Чтоб ЛибреОффис заработал с MySQL, нужен JDBC коннектор. На Убунте его можно установить из репозиторий:

apt-get install libmysql-java

Почему-то Test Class говорит, что не может загрузить JDBC драйвер, но база в ЛибреОффисе контачит хорошо даже с удаленного компа. 

 

Делаем базу данных

mysql -u root -p
CREATE DATABASE dbname;

Делаем супер юзера с неограниченными привилегиями:

CREATE USER 'user'@'localhost' IDENTIFIED BY 'pwd';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD 'pwd' WITH GRANT OPTION
FLUSH PRIVILEGES;

Теперь можно делать делать таблицы для MySQL прямо в ЛибреОффисе. Только автоинкремент для таблиц почему-то в ЛибреОффисе не делается. Его надо делать вручную:

AUTOINCREMENT
mysql -u root -p

ALTER TABLE dbname.Table MODIFY ID INT NOT NULL;
ALTER TABLE dbname.Table DROP PRIMARY KEY;
ALTER TABLE dbname.Table CHANGE ID ID INT(10)AUTO_INCREMENT PRIMARY KEY;

Ресетить автоинкремент надо так:

RESET AUTOINCREMENT
mysql -u root -p

ALTER TABLE dbname.Table AUTO_INCREMENT = 1;

Если мы начнем вносить в таблицу данные русским шрифтом, то появится ошибка “Incorrect string value”. Это потому что таблица не понимает русского языка. Ее надо переделать на UTF8:

mysql -u root -p

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Такие изменения надо делать со свежей таблицей, потому что данные, которые уже находятся в таблице, не будут конвертированны.

Правда, если данные достать из этой таблицы, можно получить одни лишь вопросительные знаки типа “????? ?? ????”. Это происходит потому ,что MySQL не понимает, что надо говорить по-русски. Поэтому ее надо инструктировать командой

SET NAMES utf8;

А в HTML надо поставить мета-таг

<meta charset="UTF-8">

Для Python 2.7 запросы идут в такой последовательности

#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb

cur = db.cursor()
cur.execute("SET NAMES utf8;")
cur.execute("SELECT * FROM tablename")
L = cur.fetchall()
db.close()

print L