Openshift и Django: раздача загруженных файлов

Интерфейс сайта может позволять пользователю загружать файлы. Файлы должны загружаться в папку, которая указана в переменной MEDIA_ROOT в файле settings.py следующим образом.

MEDIA_ROOT = os.path.join(os.environ['OPENSHIFT_DATA_DIR'], 'media')

Переменная окружения OPENSHIFT_DATA_DIR хранит путь к папке, которая специально предназначена для постоянного хранения данных на сервере. Поэтому именно там должна размещаться папка media, куда попадают загружаемые файлы.

При использовании Django-CMS, файлы загружаются именно в MEDIA_ROOT.

Но есть сложность с раздачей этих файлов. Django не имеет инструментов для раздачи загруженных файлов на боевом сервере.

Чтобы раздавать загруженные файлы надо пойти на хитрость. Сделать так, чтобы они раздавались как static-файлы.

static-файлы автоматически собираются в папку, которая указана в переменной STATIC_ROOT.

Читать далее Openshift и Django: раздача загруженных файлов

Реклама

Установка Облака Mail.ru в Ubuntu

%d0%be%d0%b1%d0%bb%d0%b0%d0%ba%d0%be-mail-ru-ubuntu

Инструкция

  1. Скачать скрипт
    wget https://raw.githubusercontent.com/bravikov/cloud-mail.ru-installer/master/install-cloud-mail-ru.sh
  2. Сделать исполняемым
    chmod u+x install-cloud-mail-ru.sh
  3. Запустить
    ./install-cloud-mail-ru.sh

В последствии приложение будет обновляться, как и другие приложения.

Скрипт можно запускать сколько угодно раз.

Команда для запуска Облака Mail.Ru:

cloud

Код скрипта

echo "deb https://linuxdesktopcloud.mail.ru/deb default free" | sudo tee /etc/apt/sources.list.d/mail.ru-cloud.list
wget -q https://linuxdesktopcloud.mail.ru/mail.ru-cloud.gpg -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install mail.ru-cloud

Ссылки

  1. Официальное описание метода на сайте Mail.Ru.
  2. Скрипт на Github.

Интеграция Git в файловый менеджер Ubuntu 16.04

RabbitVSC

Читать далее Интеграция Git в файловый менеджер Ubuntu 16.04

Установка Odoo 9.0 (бывший OpenERP) в Ubuntu 14.04

Odoo (бывшая OpenERP) — это ERP- и CRM-система. Последняя стабильная версия — 9.0.

Все действия в командной строке необходимо производить с правами суперпользователя, поэтому возьмем себе эти права:

sudo bash

Таким образом запустится bash с правами суперпользователя. В дальнейшем перед командами не будет необходимости писать sudo.

Если перед установкой Odoo установить PostgreSQL, то Odoo настроит PostgreSQL под свои нужды.

В Ubuntu 14.04 используется PostgreSQL версии 9.3.

У меня уже была установлена и настроена PostgreSQL и это породило проблемы при установке Odoo. Поэтому сначала я удалил PostgreSQL командами:

apt-get remove --purge postgresql
apt-get remove --purge postgresql-9.3

Ключ --purge удаляет все настройки.

Установим СУБД PostgreSQL:

apt-get install postgresql

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

ERROR: no ecoding defined in /usr/share/hunspell/ru_RU.aff, ignorin

Происхождение этой ошибки мне не известно и я ее проигнорировал. На дальнейшую работу это не повлияло.

Надпись, говорящая, что сервер PostgreSQL запущен:

* Starting PostgreSQL 9.3 database server

В репозитории Ubuntu 14.04 находится довольно старая версия Odoo (OpenERP 6.1).

Поэтому подключим репозиторий ночных сборок Odoo двумя командами:

wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list

Обновим список пакетов:

apt-get update

И установим Odoo:

apt-get install odoo

Надпись, говорящая, что Odoo запущен:

Starting odoo: ok

Теперь для работы с Odoo запускаем браузер и переходим по адресу:

http://localhost:8069/

Зайдя на эту страницу, мы видим:

Odoo 9.0 create database

Здесь предлагается создать базу данных под нужны Odoo. Вводим имя базы данных, которое нам нравится, выбираем язык, вводим пароль администратора и нажимаем «Create database».

Печать в PDF

Odoo позволяет сохранять отчеты, счета и прочее в PDF. В терминологии Odoo это называется печатью:

Odoo 9. Печать

Odoo не печатает с помощью принтера, по крайней мере, автору такой способ неизвестен.

Если хотите печатать в PDF, то необходимо установить программу Wkhtmltopdf.

В репозитории Ubuntu 14.04 находится старая версия этой программы, с которой Odoo не сможет работать. Поэтому придется выполнить ряд действий посложнее простого apt-get install.

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

apt-get install xfonts-base xfonts-75dpi

Теперь загрузим пакет Wkhtmltopdf:

  • для 64-разрядной системы:
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
  • или 32-разрядной:
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-i386.deb

С этой версией программы Odoo гарантировано работает, чего не удалось добиться с более старшей версией.

Установим:

  • для 64-разрядной системы:
dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
  • для 32-разрядной системы:
dpkg -i wkhtmltox-0.12.2.1_linux-trusty-i386.deb

Чтобы печать в PDF заработала перезапустим Odoo:

service odoo restart

Ссылки

  • Ночные сборки Odoo (сборки для различных версий для различных операционных систем).

Разбор файла в формате Intel HEX с помощью sed

Команда для разбора строк файла file.hex:

sed -r "s/^(.*)\r$/\1/g; s/^:(..)(....)(..)(.*)(..)$/\1 \2 \3 \4 \5/g" file.hex

Удачно разбирает файл, если строки в нем завершаются в стиле Unix (символом LF) или в стиле Windows (символами CR+LF).

Если содержимое исходного файла:

:10077600F90FD8E0E4C9FAE4CCFB2275F010EF2FAC
:10078600FFEE33FEED33FDCC33CCC833C810D707AC
:100796009BEC9AE899400AED9BFDEC9AFCE899F8E7
:0E07A6000FD5F0DAE4CDFBE4CCFAE4C8F9227A
:00000001FF

то вывод команды:

10 0776 00 F90FD8E0E4C9FAE4CCFB2275F010EF2F AC
10 0786 00 FFEE33FEED33FDCC33CCC833C810D707 AC
10 0796 00 9BEC9AE899400AED9BFDEC9AFCE899F8 E7
0E 07A6 00 0FD5F0DAE4CDFBE4CCFAE4C8F922 7A
00 0000 01  FF

Скрипт для слежения за подключением/отключением устройств ttyUSB*

Скачать

#!/bin/bash

# Скрипт для слежения за подключением/отключением устройств ttyUSB*
# автор: bravikov@gmail.com

# Пример вывода:
#[01.01.2013 20:20:01] new ttyUSB0
#[01.01.2013 20:20:05] new ttyUSB1
#[01.01.2013 20:20:08] remote ttyUSB0
#[01.01.2013 20:20:10] remote ttyUSB1

echo -e "\n exit: Ctrl+C \n"

PREV_DEV_LIST=""
while [ 1 ]
do
    DEV_LIST="`ls /dev | grep ttyUSB`"
    
    ##### find new device #####
    for DEV in $DEV_LIST
    do
        NEW_DEV=yes
        
        for PREV_DEV in $PREV_DEV_LIST
        do
            if [ "$DEV" == "$PREV_DEV" ]
            then
                NEW_DEV=no
                break
            fi
        done
        
        if [ $NEW_DEV == yes ]
        then
            echo [`date "+%x %X"`] new $DEV
        fi
    done
    ###########################
    
    ##### find remote device #####
    for PREV_DEV in $PREV_DEV_LIST
    do
        REMOTE_DEV=yes
        
        for DEV in $DEV_LIST
        do
            if [ "$DEV" == "$PREV_DEV" ]
            then
                REMOTE_DEV=no
                break
            fi
        done
        
        if [ $REMOTE_DEV == yes ]
        then
            echo [`date "+%x %X"`] remote $PREV_DEV
        fi
    done
    ##############################
    
    PREV_DEV_LIST="$DEV_LIST"
    
    sleep 1
    
done

bash: Преобразование URL в текст

Команда для преобразования URL в читаемый текст:

read -p "> " URL; echo -e "> `echo $URL | sed 's|%|\\\\x|g'`"

Пример работы команды:

$ read -p "> " URL; echo -e "> `echo $URL | sed 's|%|\\\\x|g'`"
> http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
> http://ru.wikipedia.org/wiki/Заглавная_страница
$