Monday, October 20, 2014

fedora 20: Установка mysql

С версии 19 в fedora MySQL база данных заменена на MariaDB, которая обеспечивает полную совместимость.

Установим базу данных:
sudo yum install mariadb mariadb-server

Стартуем сервис:
sudo service mysqld start

И запускаем настройку:
mysql_secure_installation

При первом запуске программа запросит ввести root пароль, просто нажмите Enter, а вот на 2ом шаге введите реальный пароль. Ответьте на остальные вопросы.

Запускаем sql консоль для создания базы данных:
mysql -u root -p

Новая база данных создается командой:
CREATE DATABASE techtips
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

Выйти из консоли можно командой:
\q

Пример настроек для Flask + SQLAlchemy:
SQLALCHEMY_DATABASE_URI = 'mysql+mysqldb://root:12345@localhost/techtips?charset=utf8&use_unicode=0'

Как сделать GET запрос с помощью gjs

const Soup = imports.gi.Soup;

var _httpSession = new Soup.Session();

var message = Soup.form_request_new_from_hash('GET', "http://google.com", {});
_httpSession.queue_message(message, function(_httpSession, message) {
log(message.status_code);
log(message.response_body.data);
});

PythonAnywhere: Настройка MySQL

В данный момент PythonAnywhere поддерживает только MySQL как бесплатную базу данных (обещают скоро добавить поддержку Postgresql ). Начнем с создания базы данных. Для этого необходимо перейти на вкладку Databases и в поле Create database ввести имя базы данных:

Также надо установить пароль для доступа к базе данных. Путь базы данных для sqlalchemy будет выглядеть так:
SQLALCHEMY_DATABASE_URI = 'mysql+mysqldb://pa_username:db_password@mysql.server/db_name'

где pa_username - имя пользователя на PythonAnywhere, db_password - пароль к базе данных, db_name - имя базы данных (например, jsnjack$main-mysql).

Для того, чтобы sqlalchemy работала с mysql надо установить пакет:
pip install MySQL-python

PythonAnywhere: Настройка wsgi для приложения Flask

Предположим, что используется virtualenv. *wsgi.py выглядит следующим образом:
activate_this = '/home/jsnjack/jsn-techtips/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

import sys

path = '/home/jsnjack/jsn-techtips'
if path not in sys.path:
sys.path.append(path)

from app import create_app
application = create_app('pythonanywhere')


Первые 2 строки - эквиваленты source ./env/bin/activate на локальной копии. Path - путь к приложению. create_app() - функция, которая возвращает flask-приложение (и это едиственное условие для правильной конфигурации - присвоить переменной application приложение Flask), "pythonanywhere" - профиль конфигурации.

Код для create_app и профилей создан на основе flasky

Saturday, October 18, 2014

fedora 20: Как установить atom

Atom - это бесплатный текстовый редактор, который разрабатывает та же компания что и github. На официальном сайте доступен только пакет для Ubuntu. В интернете есть инструкция по установке atom для fedora 20 из исходников.

Инструкция достаточно подробная и я по ней уже когда-то устанавливал atom. Но! Есть более простой способ - воспользоваться *.deb пакетом. Последнюю версию можно скачать тут.

Итак, копируем скачанный пакет в папку куда хотим установить atom и выполняем команду:
ar p atom-amd64.deb data.tar.gz | tar zx

Запускаем atom командой:
./usr/bin/atom

Friday, October 17, 2014

bash: Как изменить командную строку в bash

В bash командную строку можно изменить присвоив значение PS1 в терминале. Вот эта команда добавит время, полный путь в запрос, а также выведет его на следующую строку:
$ PS1="\[\033[01;32m\]\t \[\033[01;34m\]\w\[\033[00m\]\[\033[1;32m\]\n\$ \[\033[m\]"


Чтобы изменения сохранились после перезагрузки, добавьте эту строку в файл ~/.bashrc:
# Configure prompt
export PS1="\[\033[01;32m\]\t \[\033[01;34m\]\w\[\033[00m\]\[\033[1;32m\]\n\$ \[\033[m\]"

Список специальных символов:

\d The date, in "Weekday Month Date" format (e.g., "Tue May 26").


\h The hostname, up to the first . (e.g. deckard)


\H The hostname. (e.g. deckard.SS64.com)


\j The number of jobs currently managed by the shell.


\l The basename of the shell's terminal device name.


\s The name of the shell, the basename of $0 (the portion following the final slash).


\t The time, in 24-hour HH:MM:SS format.


\T The time, in 12-hour HH:MM:SS format.


\@ The time, in 12-hour am/pm format.


\u The username of the current user.


\v The version of Bash (e.g., 2.00)


\V The release of Bash, version + patchlevel (e.g., 2.00.0)


\w The current working directory.


\W The basename of $PWD.


\! The history number of this command.


\# The command number of this command.


\$ If you are not root, inserts a "$"; if you are root, you get a "#" (root uid = 0)


\nnn The character whose ASCII code is the octal value nnn.


\n A newline.


\r A carriage return.


\e An escape character.


\a A bell character.


\\ A backslash.


\[ Begin a sequence of non-printing characters. (like color escape sequences). This allows bash to calculate word wrapping correctly.


\] End a sequence of non-printing characters.


Wednesday, September 17, 2014

bash: Как следить за процессами

Для того, чтобы вывести в консоль информацию о каком либо процессе (фильтруется по имени) можно воспользоваться командой:
watch -n 1 'ps ax -o rss,user,command | sort -nr | grep celery |head -n 5'

Эта команда выведет все процессы связанные с celery и ограничит вывод 5 штуками