IT Блог

Документации и переводы

Статьи на технические темы

Растянуть текст по длине блока

Есть несколько способов растянуть текст по ширине блока или страницы адаптивным образом.

1. Использование css-трансформации scale

Данный код позволяет менять размер шрифта в зависимости от ширины браузера:

<!-- test.html -->
<div class="test">Произвольный текст</div>
// script.js
var $window = $(window), $body = $('body'), $wrap = $('.wrap'), defaultWidth = 1000;
     
$window.resize(function () {
    $wrap.css({transform: 'scale(' + $window.width() / defaultWidth  + ')'});
    var height = $wrap.outerHeight(true);
}).resize();
/* styles.css */
.test {font-size: 72px;}

Немного доработав код, вы можете растянуть текст не только на всю длину страницы, но и на длину конкретного блока.

2. Использование параметра font-size

Есть ещё другой способ заставить шрифт растягиваться по...


Ошибка PIL: The _imagingft C module is not installed

Если возникает ошибка: The _imagingft C module is not installed, то для PIL не хватает библиотеки libfreetype.

для Linux решением может служить установка libfreetype6-dev:

sudo apt-get install libfreetype6-dev
pip uninstall pil
pip install pil

stackoverflow подсказывает, что для OS X нужно сделать симлинки:

pip uninstall PIL
ln -s /usr/X11/include/freetype2 /usr/local/include/
ln -s /usr/X11/include/ft2build.h /usr/local/include/
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib
pip install PIL

Ошибка SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS)

Ошибка "SuspiciousOperation: Invalid HTTP_HOST header (you may need to set ALLOWED_HOSTS)" может возникать в том случае, если вы не добавили нужный домен в ALLOWED_HOSTS в файле settings.py. Например:

ALLOWED_HOSTS = ['demo.vits.pro', 'www.demo.vits.pro']

Если же снова появляется та же ошибка, но с непонятным адресом, например "hotel.qunar.com":

Traceback (most recent call last):

  File "/home/vivazzi/demo/src/demo/env/lib/python2.7/site-packages/django/core/handlers/base.py", line 92, in get_response
    response = middleware_method(request)

  File "/home/vivazzi/demo/src/demo/env/lib/python2.7/site-packages/django/middleware/common.py", line 57, in process_request
    host...

Использование redirect для перехода на страницу с GET параметрами в Django

Бывает, есть необходимость после отправки данных с формы перейти с представления на ту же страницу (или какую-то другую), но с передачей GET параметров в строке запроса.

В простейшем случае можно поступить так:

def feedback(request):
    form = ContactForm(data=request.POST or None)

    if form.is_valid():
        # some code

        params = {'send': 'true'}

        return redirect('{}?{}'.format(reverse(feedback), urlencode(params)))

    return render(request, 'feedback_forms/feedback_minimum.html', {'form': form})

Для кого-то это, конечно, очевидно.. я же иногда теряюсь :)


Проблема с кодировкой python: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)

Если у вас Traceback показывает следующую информацию:

Traceback (most recent call last):
  File "C:\Python27\lib\site-packages\django\core\servers\basehttp.py", line 280, in run
    self.result = application(self.environ, self.start_response)
  File "C:\Python27\lib\site-packages\django\core\servers\basehttp.py", line 709, in __call__
    mime_type = mimetypes.guess_type(file_path)[0]
  File "C:\Python27\lib\mimetypes.py", line 295, in guess_type
    init()
  File "C:\Python27\lib\mimetypes.py", line 356, in init
    db.read_windows_registry()
  File "C:\Python27\lib\mimetypes.py", line 261, in read_windows_registry
    for ctype in enum_types(mimedb):
  File "C:\Python27\lib\mimetypes.py", line 251, in enum_types...

Оптимальная конфигурация CKEDITOR_CONFIGS приложения ckeditor в Django

Для того чтобы сконфигурировать популярный html-редактор ckeditor под себя, нужно добавить CKEDITOR_CONFIGS в settings.py проекта. Наиболее оптимальная настройка, которой я пользуюсь:

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar': [
            ['Undo', 'Redo',
             '-', 'Bold', 'Italic', 'Underline',
             '-', 'Link', 'Unlink', 'Anchor',
             '-', 'Format',
             '-', 'Maximize',
             '-', 'Table',
             '-', 'Image',
             '-', 'Source',
             '-', 'NumberedList', 'BulletedList'
            ],
            ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock',
             '-', 'Font', 'FontSize', 'TextColor',
             '-', 'Outdent', 'Indent',
             '-', 'HorizontalRule',
             '-', 'Blockquote'
            ]
        ],
        'height': 500,
        'width': '100%',
        'toolbarCanCollapse': False,
        'forcePasteAsPlainText': True
    }
}

Undo, Redo - отменить, повторить шаг
ShowBlocks - показать/скрыть блоки параграфов
Bold, Italic, Underline - сделать текст жирным, курсивным, подчёркнутым
Link, Unlink, Anchor - добавить, убрать ссылку; добавить якорь
Format - выбор формата (h1, h2 и т.д.)
Maximize - развернуть во весь экран (очень удобно...


Где находятся логи, пути, пакеты, конфигурационные файлы пакетов в Линуксе

Список путей к разным файлам и папкам, которые мне время от времени пригождаются.

Питоновская директория библиотек, куда устанавливаются зависимости (python dist-packages):

/usr/local/lib/python2.7/dist-packages
/home/username/.local/lib/python2.7/site-packages
/proc/3817/cwd/env/lib/python2.7/site-packages/

Исполняемый файл nginx:

/usr/local/sbin

Лог cron:

Cron не имеет пути к собственным логам. Лог запуска и окончания заданий идет в syslog:

/var/log/syslog

Для вывода результата работы в файл: > path/to/file 2>&1, например:

* * * * * python /home/username/my_app/src/manage.py send_queued_mail > /home/log.txt 2>&1

Часто используемые команды shell

Когда дело доходит до администрирования системы Linux и, в частности, разворачивания сайтов на сервере, тогда встаёт вопрос об автоматизации своего труда. На помощь приходят shell скрипты. Так, например, они помогают мне делать автоматическое резервное копирование баз данных.

Вот список часто используемых мною команд.

Вывести на экран слово hello:

echo hello

Присвоить некоторое значение и вывести его на экран ($ - этот знак используется для получения значения переменной):

house_count=5
echo $house_count

word=lambada
echo $word

Записать результат выполнения в переменную:

DATE=`date +%Y%m%d`  # присвоит переменной DATE текущую дату в формате %Y%m%d (например, 20140215)
FILES=`find '/home/user/media...

Команды Linux

Команды, которые мне пригодились для настройки Linux. Список будет пополняться по мере использования команд.

Операции с файлами

Копирование файла с удалённого сервера

$ scp root@site.ru:/home/somefile.txt somefile.txt

Быстрая очистка файла

$ cp /dev/null file.txt

Просмотр нагрузки системы

$ top

Настройка производительности

Просмотр сведений о системе

$ cat /etc/*release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=14
DISTRIB_CODENAME=nadia
DISTRIB_DESCRIPTION="Linux Mint 14 Nadia"
NAME="Ubuntu"
VERSION="12.10, Quantal Quetzal"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu quantal (12.10)"
VERSION_ID="12.10"

Просмотр версии ядра

$ uname -r
2.6.32-042stab076.8
$ uname -a
Linux vivazzi 2.6.32-042stab076.8 #1...

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц