пятница, 18 мая 2018 г.

DJANGO POSTRESQL STACK


Инструкция по коннекту Django с базой Postgresql

  1. pip install psycopg2 само собой (поправка, теперь нужно ставить psycopg2-binary, типа название изменилось)
  2. sudo -u postgres -i
  3. psql
  4. В консоли базы делаем
    CREATE USER name;
    или сразу с паролем:
    CREATE USER name WITH PASSWORD 'password';
     
     
    CREATE DATABASE db_name OWNER name;
     
    Потом нам нужно будет пароль поставить, если сразу не задали, джанго без пароля выдаст ошибку
    
    ALTER USER user_name WITH PASSWORD 'new_password';
     
    Если нужно просмотреть все базы то это команда \l, там будет видно получилось у вас или нет 
     
  5. В настройках пишем:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.postgresql',
            'NAME': 'db_name',
            'USER': 'name',
            'PASSWORD': '',
            'HOST': 'localhost',
            'PORT': '',
        }
    }
  6. Потом вот эта выдержка из джанго документации:

    Optimizing PostgreSQL’s configuration

    Django needs the following parameters for its database connections:
    • client_encoding: 'UTF8',
    • default_transaction_isolation: 'read committed' by default, or the value set in the connection options (see below),
    • timezone: 'UTC' when USE_TZ is True, value of TIME_ZONE otherwise.
    If these parameters already have the correct values, Django won’t set them for every new connection, which improves performance slightly. You can configure them directly in postgresql.conf or more conveniently per database user with ALTER ROLE.
    Django will work just fine without this optimization, but each new connection will do some additional queries to set these parameters.


  7. Потом в окружении делаем
    python manage.py migrate
  8. Создаем админскую учетку
     python manage.py createsuperuser --username admin

понедельник, 31 октября 2016 г.

Пичаль по SSD

То чувство, когда хочешь купить SSD чтобы ноутбук быстрее выходил из спящего режима, изучаешь советы по содержанию SSD под Linux и видишь это:

четверг, 25 февраля 2016 г.

Windows 7 usb stick create

В общем, поигрался я с тестируемым дистрибутивом и вернулся на debian jessie, потому что нет столько времени, чтобы допиливать компьютер до рабочего состояния. А тут все работает. Ну кроме мозиллы :(

Да, стырил из дебиана нового - загрузочный splash - экран (он там работает как тема для plymouth, называется "lines") и присобачил ту же заставку в Grub.

Два дня пытался сделать загрузочную флешку  с семеркой. Кратко опишу достижения:

1. Исошник - сборка Windows 7 ru ultimate x64
2. Напрямую через dd на флешку заливается - и не загружается
3. Пробовал отдельно записать на флешку Grub, загружающий ntldr, - Винда запускается и сразу же выдает загрузочную ошибку об отсутствии /Boot/BCD. Пробовал и обычным способом и efi - загрузкой.
4. UNetbootin и ms-sys - мало того, что в дебиане их надо компилировать, так они еще и не работают. Либо флешка не загружается, либо процесс до конца не доводится.
5. Isohybrid на исошник с виндой говорит "unexpected boot catalogue parameter"
6. Плюнул на всё это, решил попробовать все сделать из-под семерки. Утилита, на которую стоит ссылка на официальном сайте Microsoft - исошник есть отказалась. Так то.
7. Помогла программа rufus - без проблем и лишних вопросов съел исошник, записал на флешку, все загружается, да еще пишет в начале "Press any key to boot from USB". Программой очень доволен, жаль, что она под винду, хотя использует syslinux и mingw32, исходники открытые, непонятно, почему нет linux версии.

Теперь решил сохранить такое сокровище как готовую usb флешку с виндой, полученной такими трудами.

для этого, значит, использовал команду:
  
dd if=/dev/sdb bs=1M |  7z a -si windows7.usb.img.7z

Пробовал ставить максимальные параметры 7z, сжимать через gzip - размер архива получается примерно одинаковый и очень похожий на просто сжатый исошник. Хотя я считываю через dd восьмигиговую флешку. Нулями что ли она в конце забита?

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

7z e -so windows7.usb.img.7z | dd of=/dev/sdb bs=1M

 Вместо 7z a и 7z e может соответственно стоят gzip -c и gunzip -c
или bzip2 и bunzip2 -c

вторник, 5 января 2016 г.

Здравствуй, здравствуй, Новый год!

Постов в этом блоге не было уже год, что свидетельствует о стабильности стабильной версии Debian. Ну правильно, ведь она же стабильная :)
 И тут значит, дернуло меня обновиться на тестируемую ветку stretch.
И всё заверте...
  1. Первое - никогда не обновляйте на ночь глядя операционку, тем более если завтра вам вставать!
  2. У меня полетели все зависимости невесть куда, так что в какой-то момент я уже думал, что систему пакетов не собрать.
  3. Напрочь вылетел Perl так что пришлось его заново скачивать и компилировать. И ведь знакомая история, было у меня уже что-то такое. Что теперь делать с этим перлом - не понятно.Оказалось, что KDE-таки доехал до версии KDE5, и это было одновременно приятной и неприятной неожиданностью. Приятность оказалась в плиточном интерфейсе


    Жаль, конечно, что виндовая мода добралась и сюда. Но с другой стороны KDE и позиционируется как похожий на Windows. Да и сам интерфейс отрисовали действительно красиво. Если б сделали раньше, цены б им не было.
  4. Плазма не падает. Когда вышел KDE 4.0, его разработчики прямо признались "мы выпускаем в релиз бета-версию, чтоб вы, дорогие пользователи, это всё оттестировали". Ахаха. Этим релизом  пользоваться было практически невозможно - значительная часть старых функций KDE 3.5 отсутствовала, а новая среда Plasma грохалась так часто, что даже удостоилась отдельной статьи на Лурке.  Ну дык KDE5 живо мне напомнило те эпичные времена. Даже на Debian Testing - самом стабильном из тестируемых, Plasma иногда падает. Впрочем, сразу восстанавливается без последствий. Зато пропало большинство старых виджетов, нельзя сделать панель с кнопочками, полупрозрачность и анимация работают через пень-колоду, всё дергается и мерцает.
  5. Новая мозилла перестала валиться на ЖЖ. Ну хоть что-то.
  6. Внезапно обнаружилось, что KDM - всё :( Не нужен. Упразднен. Вместо него теперь некий SDDM. Симпатичный и недоделанный как и плазма.
  7. Полетел ждущий и спящий режим. Некоторые пишут, что из-за SDDM. Поставил Lightdm - система ушла в спящий режим, но при загрузке глюкнула и перезагрузилась заново.
    Попробовал обновить policykit из ветки experimental по этой инструкции. Ничего не редактировал, просто обновил - вроде бы работает. Да, потребовалось отдельно ставить пакет libmozjs185-1.0_1.8.5-1.0.0+dfsg-4.5_amd64.deb из репозитория sid.
  8. При завершении система выдает таймаут на полторы - три минуты с сообщением "A stop job is running for Session N of user" Ну вообще приехали. Пока непонятно, что с этим делать. Пишут что проблема в systemd. Попробую обновиться может.
  9. Libreoffice стал пятой версии. Пока особо не пользовался.
  10. Пока что это все. Посмотрим, что будет дальше.
 

четверг, 22 января 2015 г.

Скрипт для обновления Firefox под Debian

Одна из немногих вещей, которые я не разделяю в Debian - это всякие приколы приколы над продуктами Mozilla типа создания браузеров Iceweasel или клиентов электронной почты Icedove.
Поэтому у меня стоит оригинальная версия Mozilla. Для этого нужно скачать архив, распаковать куда-нибудь (у меня /usr/local) и поставить сиволическую ссылку на исполняемый файл в /usr/local/bin.

Но возникает вопрос с обновлением. Firefox периодически предлагает мне обновиться на новую версию, однако самостоятельно не может этого сделать. Приходится обновлять вручную. И вот в очередной раз я решил этот процесс автоматизировать.
Написал bash-скрипт под названием firefox-update.
Скрипту в качестве параметра указывается номер версии Firefox, которую нужно скачать, он скачивает архив, распаковывает его и самостоятельно всё обновляет.

вот его текст:


#!/bin/bash
if [ "$1" == "" ]; then
 echo "Пожалуйста, укажите номер версии Firefox."
 exit 0;
fi

if [ "$1" == "--help" ]; then
 echo "Usage: firefox-update number-of-version; e. g. firefox-update 35.0"
 echo ""
 exit 0;
fi

echo "Download Firefox..."
wget https://download-installer.cdn.mozilla.net/pub/firefox/releases/$1/linux-x86_64/ru/firefox-$1.tar.bz2 -O /tmp/firefox-$1.tar.bz2
if [ "$?" == "0" ]; then
  echo "OK. Extracting source..."
else
  echo "Firefox source does not found. Please, check your version number."
  exit 1;
fi
tar xjf /tmp/firefox-$1.tar.bz2 --directory /tmp
if [ "$?" == "0" ]; then
  echo "OK. Updating Firefox..."
  cp -R  /tmp/firefox /usr/local/
  echo "Firefox is succesfully updated."
  exit 0;
else
  echo "Firefox source tarball has an error. Exiting."
  exit 1;
fi
exit 0;

суббота, 29 ноября 2014 г.

Samsung Galaxy Tab 3: MTP vs Debian Linux

Вопрос, как подружить под Линуксом планшет Samsung Galaxy Tab 3 и Linux стоял передо мной уже давно. Нет, планшет был виден, монтировался и вполне читался, однако ни записать, ни удалить что-либо было невозможно (сейчас посмотрел - удаляет, но, например, создать новую папку - not supported by camera protocol). В интернетах это объяснялось неполной поддержкой в Линуксе протокола MTP - изобретения Майкрософт. Преимущество этого протокола перед обычным подключением USB Mass Storage (по типу флешки) в том, что карта памяти не отключается от устройства на время подключения к компьютеру, а становится доступна сразу и там, и там.

Сегодня-таки решил заварить чаю и надолго засесть за решение этой проблемы. Одно из решений, собственно, где-то я уже видел, но оно требовало скачивать и устанавливать Android SDK весом 500 Мегабайт - игра не стоила свеч :)

Как обычно - наиболее толковая инструкция по MTP была на Arch Wiki:
https://wiki.archlinux.org/index.php/MTP

Там было несколько способов - мне понравился jmtpfs,  про него было написано: If you have a newer Android device that does not support UMS (USB Mass Storage) and you find mtpfs extremely slow or not working properly, you can install jmtpfs from the AUR.

Устройство действительно новая, да и скорости хочется - можно сразу ставить jmtps :)
В KDE работа mtp обеспечивается пакетом kio-mtp, так что не мешает поставить и его.
Итак:

#aptitude install kio-mtp mtp-tools jmtpfs

Дальше следуем Arch-инструкции:
  • First edit your /etc/fuse.conf and uncomment the following line:
user_allow_other

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

#mkdir /mnt/galaxy; chmod 0777 /mnt/galaxy

Арчвики рекомендует монтировать так:

Use this commands to mount your device:
$ jmtpfs ~/mtp
And this command to unmount it:
$ fusermount -u ~/mtp

Можно монтировать полной командой:

jmtpfs -o allow_other /mnt/galaxy

При монтировании выдается ошибка: Unable to open ~/.mtpz-data for reading, MTPZ disabled. Однако, всё работает, думаю, можно не обращать на нее внимания.

Минус один повод перезагружаться в Винду :)

P.S. Как понятно из заголовка, я вернулся-таки на Дебиан, поставил Debian Jessie и очень доволен. Последней каплей стало то, что после последнего обновления KDE на Арче стал загружаться по две минуты, и сходу решить это я не смог, а разбираться с кучей таких досадных мелочей надоело. Дебиан всё-таки - наше всё )))

среда, 2 июля 2014 г.

Wvdial, Megafon modem и все-все-все

Если в Дебиане мой старенький Мегафон-модем еще как-то худо-бедно работал с помощью своей собственной программы, то в Арче программа модем тупо не видит - какая-то ошибка драйвера. А ковыряться лень.

К счастью есть старый добрый wvdial, который ест все модемы, какие только есть :)

Wvdial.conf у меня такой:

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
ISDN = 0
Modem = /dev/ttyUSB0
Phone = *99#
Username = gdata
Password = gdata
Baud = 460800
Init3 = AT+CGDCONT=1,"IP","internet"
Модем создает аж три устройства /dev/ttyUSB[0-2], с /dev/ttyUSB0 всё прекрасно работает.

Но инициализируется он не сразу.
Сначала нужно запустить /usr/local/Mobile_Partner/driver/HWActivator
Можно переключить модем в режим модема и без него, в интернете есть инструкции, но раз уж у меня драйвер установлен, почему бы им и не воспользоваться.

В итоге нужно:
1. Воткнуть свисток
2. Запустить HWActivator
3. Подождать, пока модем переключится в режим модема
4. Запустить wvdial

wvdial с этим модемом почему-то делает паузу на 30 секунд перед подключением, что с этим делать - не понятно.

Тем не менее, тут явно напрашивается скрипт, верно? :)
Ну так вот, наконец, сегодня я его и сделал. Добавлены всякие проверки и прочее.

#!/bin/bash

if [ $(pgrep wvdial)>'0' ]
then
  echo "Wvdial is already running. Exit."
  exit 1
fi

# Make sure only root can run our script
if [[ $EUID -ne 0 ]]; then
    echo "This script must be run as root"
    exit 1
fi

# Check that HWActivator is running
if [ $(pgrep HWActivator)>'0' ]
then
  echo "HWActivator is running. Ok."
else
  echo "HWActivator is not running. Starting..."
  /usr/local/Mobile_Partner/driver/HWActivator
fi

# Wvdial section
echo "Waiting for Megafon modem..."

until [ -e /dev/ttyUSB0 ]
do sleep 3s;
done

echo Modem activated. Starting wvdial...
wvdial
exit 0;

Таймаут меньше трех секунд не срабатывает - устройство в /dev уже есть, но модем при подключении выдает ошибку.

Как-то так.

(Почему Network Manager не видит этого модема (в дебиане видел и опознавал как мобильник, подключался нормально) - тоже не очень понятно)