Рубрика «tutorial» - 23

В своем предыдущем посте я писал о том зачем и почему нужно было сделать pybabel-hbs, экстрактор строк gettext из шаблонов handlebars.

Чуть позже появилась необходимость извлекать так же из json.
Так появился pybabel-json.
pip install pybabel-json либо на github

Там использовался лексер джаваскрипта встроенный в babel, но нюансы так же имелись, но пост не об этом, написанное там менее интересное, чем было в hbs плагине и вряд ли нуждается в заострении внимания.

Этот пост о том, как же в целом выглядит полный набор для локализации, от и до, что делать с данными из БД, либо из другого не совсем статичного места.
От и до включает в себя:
(должен заметить — что ни один пункт не является обязательным, все это достаточно легко подключается к любому приложению только частично и по необходимости)

— Babel. Набор утилит для локализации приложений.
— Grunt. Менеджер задач(task-ов),
— coffeescript. В представлении не нуждается, весь клиенстский код написан на coffee, и из него тоже нужно извлекать строки.
— handlebars — темплейты
— json — хранилища строк
— Jed. gettext клиент для js
— po2json. Утилита для перевода .po файлов в .json формат поддерживаемый Jed-ом

Читать полностью »

Предисловие
Вечная тяга к новому подтолкнула к изучению такого замечательного языка программирования, как Питон. Как это часто бывает, отсутствие идеи, на реализацию которой не жалко потратить свое время, сильно тормозило процесс.

Волею судьбы на глаза попался замечательный цикл статей о создании игры-платформера на Питоне
тут и тут.
Я решил взяться за один старый проект. За симулятор движения тел под действием сил гравитации.

Что из этого вышло читайте дальше. Читать полностью »

Всем привет, под катом приведен мой путь обновления со Squeeze до Wheezy.
Надеюсь, вам понравится в моем обществе.
Читать полностью »

Сейчас достаточно много постов и видео на тему как сделать из Vim Python IDE. Написать эту статью я решил потому, что уже долгое время пользуюсь этим редактором и надеюсь что мой опыт по его настройки, о котором я напишу в этой статье не помешает. Я не собираюсь делать из Vim «комбайн», напичкав его огромным количеством плагинов, а постараюсь обойтись средствами самого редактора и несколькими расширениями, которые помогут Python разработчикам чувствовать себя более комфортно. Давайте приступим.
Читать полностью »

Tizen Native programming. Пишем «Hello Habrahabr» для ОС Tizen
Как многим известно в скором времени ряды мобильных телефонов пополнят аппараты на ОС Tizen, разрабатываемой совместно компаниями Samsung и Intel. Для разработчиков планирующих заняться написанием приложений под Tizen, была также создана SDK с помощью которой и будет написано наше первое приложение с использованием Tizen Native App Programming в Tizen IDE.
(много картинок)
Читать полностью »

Добрый день! Это мой первый перевод на хабре. Я программирую ради удовольствия и эта статья (на самом деле это ответ с stackoverflow) показалась мне достойной внимания. Во-первых — она огромна. Во-вторых, она прекрасна. Она помогла лично мне и я надеюсь, что кому-нибудь (например, таким же новичкам как и я) она также окажет содействие и утолит любопытство.
Все, что находится в таких "[..]" скобках — это мои комментарии. Все остальное — это мой перевод. Отчасти адаптированный, отчасти нет. Надеюсь, что он не очень плох и если всеже плох, рассчитываю на ваше понимание.
Поехали!

Python: Функции как объекты

Что бы понять что такое декораторы, для начала вы должны понять, что функции в python — это объекты. Данное понимание очень важно. Давайте разберем это на простом примере:

def shout(word="yes"):
    return word.capitalize()+"!"

print shout()
# результат: 'Yes!'

# Так как фунция - объект, вы можете присвоить её переменной, как любой другой объект.

scream = shout

# Отметьте, что мы не используем скобки: мы не вызываем функцию, мы
# помещаем функцию "shout" в переменную "scream". 
# это значит, что вы можете вызвать функцию "shout" из переменной "scream":

print scream()
# результат: 'Yes!'

# Более того, это значит, что вы можете удалить старое наименование 'shout', и
# функция при этом будет все еще доступна из переменной 'scream'

del shout
try:
    print shout()
except NameError, e:
    print e
    #результат: "name 'shout' is not defined"

print scream()
# результат: 'Yes!'

Читать полностью »

Статья является пошаговым руководством по построению масштабируемого отказоустойчивого файлового хранилища, доступ к которому будет осуществлен по протоколам Samba, NFS. В качестве фаловой системы, которая будет непосредственно отвечать за сохранение и масштабирование файловой шары будем использовать GlusterFS, о котором было уже достаточно написано читателим. Так как GlusterFS — часть Red Hat Storage, туториал написан для RH — like систем.
Масштабируемый отказоустойчивый фаловый сервис на базе CTDB, GlusterFS
Читать полностью »

в 8:52, , рубрики: pgp, qt, Qt Software, tutorial, метки: , ,

Так как оказалось, что наши коммуникации довольно легко просматриваются товарищами из АНБ то похоже что нужно шифровать все коммуникации. Я решил проверить насколько сложно подключить шифрование в разработке Qt приложений. Как оказалось что все совсем несложно даже в случае использовании PGP.

Так что тут больше дело привычки разработчика чтобы шифровать критические данные.

Вот и попробуем использовать PGP в нашем простом примере. Конечно уже существует отличный framework QCA (http://delta.affinix.com/qca/) который сделает все за нас. Нам только разобраться с правильным использованием QCA.

Создадим простое десктопное пролижение которое может зашифровать входной текст. Предполагается что у нас уже установлен GnuPG, сгенерированны ключики, получены ключики получателя, установлен и отконфигурирован gpg-agent, установлен и проверен pinentry-qt/pinentry-gtk(дада, мы на линуксе). Затем нам нужно установить qca и qca-gnupg

emerge --ask qca qca-gnupg

Запустим Qt Creator, выберем Qt Gui application, добавим туда qca:Читать полностью »

Построение полноценного MVC веб сайта на ExpressJSNB: Это материал для тех, кто уже ознакомился с теоретической основой node.js и хочет, как говорится, с места в карьер — поскорей окунуться в разработку с применением этого инструмента. Никакой дедукции, only coding. Если заинтересовало, не стесняемся, проходим под кат.

Читать полностью »

    Здравствуйте, на написание данной статьи меня натолкнула аналогичная, но в качестве сервера выступала Raspberry Pi. По моему мнению использовать эту маленькую, но при этом достаточно мощную платку в этих целях немного не целесообразно, у многих есть wi-fi роутер с USB портом, а следовательно зачем включать в розетку целый блок питания от компьютера давая при этом пускай и не большой, но все таки расход электроэнергии когда в розетку включено уже все что надо.
В данной статье рассмотрим установку торрентокачалки на практический любой роутер с USB и поддержкой OpenWRT прошивки. В наличии у меня имеется Linksys E3000, но конкретной разницы в установке и настройке OpenWRT нет. Что нам для этого будет нужно:

  • Непосредственно роутер с разьемом USB, в идеале конечно с двумя.
  • Флешка/ USB HDD произвольного объема под Ваши нужды чем больше тем лучше.
  • Буквально пол часа свободного времени чтобы все поставить и настроить.
  • Прямые руки.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js