Vim переключение раскладки

В Emacs мне нравится, что там есть встроенное переключение раскладки клавиатуры, и проблем с горячими клавишами нет, когда включен русский язык.
В Vim по умолчанию ничего нет и я долго мучился, когда нужно писать то на одном языке то на другом. Решение найдено на просторах интернета, запишу его сюда, что бы не потерять.
В .vimrc нужно добавить:

set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
highlight lCursor guifg=NONE guibg=Cyan

Теперь при включенной русской раскладки можно использовать сочетания клавиш и всё будет хорошо. Язык же нужно переключать нажатием сочетания Ctrl+^.

AJAX вместе с Flask

В примере я использую Python3, если у вас Python2 добавьте в начало файла app.py строку:

# -*- coding: utf-8 -*- 

Для начала понадобится Flask. Ниже показано как установить его в виртуальное окружение.

$ mkdir flask_simple_ajax
$ virtualenv --system-site-packages --python=/usr/bin/python3 env
$ source env/bin/activate
$ pip install flask

В корне flask_simple_ajax создайте файл app.py с серверным кодом:

from flask import Flask, render_template, json, request
app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')


@app.route('/get_len', methods=['GET', 'POST'])
def get_len():
    name = request.form['name'];
    return json.dumps({'len': len(name)})


if __name__ == '__main__':
    app.run(debug=True)

Далее нужно создать директории template, static/js:

$ mkdir templates
$ mkdir -p static/js

Скачайте с сайта jQuery библиотеку и положите её в static/js.

В template создайте файл index.html со следующим содержимым:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>AJAX вместе с Flask</title>
    <script type=text/javascript src="{{ url_for('static', filename='js/jquery-2.2.2.min.js') }}"></script>
</head>
<body>
    <script>
        function get_len() {
            $.ajax({
                type: "POST",
                url: "/get_len",
                data: $('form').serialize(),
                type: 'POST',
                success: function(response) {
                    var json = jQuery.parseJSON(response)
                    $('#len').html(json.len)
                    console.log(response);
                },
                error: function(error) {
                    console.log(error);
                }
            });
        }
    </script>
    <form action="/get_len" method="post" name="form">
        <label for="name">Введите текст:</label>
        <input id="name" name="name" type="text">
        <input type="button" value="Отправить" onclick="get_len();">
    </form>
    <div id="len"></div>
</body>
</html>

Не забудьте поправить в строке 6 версию jquery на которую скачали ранее. Можно было ничего не качать и вместо 6-й строки написать:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>

Но в некоторых случаях лучше, что бы всё работало автономно.

Запускаем:

$ python3 app.py

Результат можно посмотреть в браузере по адресу http://localhost:5000/

Пример работа AJAX и Flask
Пример работы AJAX и Flask

Данный пример прост для понимания, вы быстро разберётесь и сожмите добавлять AJAX в свои проекты.
Готовые исходные кода можно взять на github

Книга «Путь программиста»

large_49601915
Недавно прочитал эту замечательную книгу. Отзывы в интернете в основном положительные. Но есть и мнение, что в книге банальщина.

Книга разбита на небольшие главы, читается легко, сам автор утверждает, что когда работал над книгой писал в день по одной главе.
Автор не рассказывает о конкретных технология, а делится жизненным опытом разработчика. Рассказывает про свою жизнь, проигрыши и победы. Эту книгу можно отнести в разряд мотивирующих, работа над собой.

Перевод очень хорош, электронная версия (я читал epub) прекрасна. Книгу можно приобрести на сайте издательства «Питер» тут. Правда цена мне кажется завышенной. И стоила она раньше (электронная версия), если не ошибаюсь — 300 рублей. Сейчас когда я пишу этот отзыв цена электронной версии составляет 790 рублей, а бумажной 820 рублей.

Рекомендую всем для прочтения, кто хочет работать на себя в сфере ИТ и не только. Автор даёт дельные советы, по этому поводу.
Один из них выглядит примерно так — «Как бы вам не хотелось поскорей уволиться с наёмной работы, и наконец начать всё время уделять работе на себя. Не спешите. Работайте на себя в свободное время, превозмогая усталость и лень. Увольняться нужно только тогда когда ваше дело полетит. Нельзя думать, что основная работа причина нехватки времени и неудач в вашем деле и уволившись у вас всё получиться. Работать на себя, трудно…»

В обще вердикт таков: читать, не нужно не читать 🙂

Flask передача параметра в redirect

Если необходимо передать параметр из одного route в другой, можно воспользоваться следующим способом.


@order.route("/order", methods=['GET', 'POST'])
def view_order():
    #  ....
    return redirect(url_for('.view_ready_order', order_id=order_id))

@order.route("/ready/<int:order_id>", methods=['GET', 'POST'])
def view_ready_order(order_id):
    return render_template('ready.html', title=u'Заказ оформлен', order_id=order_id)

В данном примере я передаю order_id для показа его в шаблоне.