
Как многим известно в скором времени ряды мобильных телефонов пополнят аппараты на ОС Tizen, разрабатываемой совместно компаниями Samsung и Intel. Для разработчиков планирующих заняться написанием приложений под Tizen, была также создана SDK с помощью которой и будет написано наше первое приложение с использованием Tizen Native App Programming в Tizen IDE.
(много картинок)
Читать полностью »
Рубрика «tutorial» - 24
Tizen Native programming. Пишем «Hello Habrahabr» для ОС Tizen
2013-10-07 в 10:42, admin, рубрики: c++, mobile development, tizen, tutorial, метки: tutorialДекораторы Python от начала до конца
2013-09-25 в 20:03, admin, рубрики: decorators, python, tutorial, переводы Добрый день! Это мой первый перевод на хабре. Я программирую ради удовольствия и эта статья (на самом деле это ответ с 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!'
Масштабируемый отказоустойчивый фаловый сервис на базе CTDB, GlusterFS
2013-09-24 в 9:29, admin, рубрики: high availability, linux, nfs, samba, tutorial, системное администрирование, метки: high availability, nfs, samba, tutorial Статья является пошаговым руководством по построению масштабируемого отказоустойчивого файлового хранилища, доступ к которому будет осуществлен по протоколам Samba, NFS. В качестве фаловой системы, которая будет непосредственно отвечать за сохранение и масштабирование файловой шары будем использовать GlusterFS, о котором было уже достаточно написано читателим. Так как GlusterFS — часть Red Hat Storage, туториал написан для RH — like систем.
Читать полностью »
Шифруемся в Qt
2013-09-14 в 8:52, admin, рубрики: pgp, qt, Qt Software, tutorial, метки: pgp, Qt, 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 веб-сайта на ExpressJS
2013-09-02 в 13:42, admin, рубрики: expressjs, JS, mvc, node.js, tutorial, переводы
NB: Это материал для тех, кто уже ознакомился с теоретической основой node.js и хочет, как говорится, с места в карьер — поскорей окунуться в разработку с применением этого инструмента. Никакой дедукции, only coding. Если заинтересовало, не стесняемся, проходим под кат.
OpenWRT, или что еще можно сделать со своим роутером
2013-08-30 в 8:51, admin, рубрики: linux, OpenWrt, transmission, tutorial, метки: OpenWrt, transmission, tutorial Здравствуйте, на написание данной статьи меня натолкнула аналогичная, но в качестве сервера выступала Raspberry Pi. По моему мнению использовать эту маленькую, но при этом достаточно мощную платку в этих целях немного не целесообразно, у многих есть wi-fi роутер с USB портом, а следовательно зачем включать в розетку целый блок питания от компьютера давая при этом пускай и не большой, но все таки расход электроэнергии когда в розетку включено уже все что надо.
В данной статье рассмотрим установку торрентокачалки на практический любой роутер с USB и поддержкой OpenWRT прошивки. В наличии у меня имеется Linksys E3000, но конкретной разницы в установке и настройке OpenWRT нет. Что нам для этого будет нужно:
- Непосредственно роутер с разьемом USB, в идеале конечно с двумя.
- Флешка/ USB HDD произвольного объема под Ваши нужды чем больше тем лучше.
- Буквально пол часа свободного времени чтобы все поставить и настроить.
- Прямые руки.
Создание несложного бота для WoW, программирование маршрутов (продолжение)
2013-08-14 в 5:17, admin, рубрики: autoit, bot, diy или сделай сам, game development, tutorial, world of warcraft, wow, вектор, перехват нажатия, робототехника, метки: autoit, bot, tutorial, world of warcraft, wow, аддон, вектор, перехват нажатия, робототехникаЭто вторая часть поста на тему создания несложного бота для игры World of Warcraft. С первой частью можно ознакомиться здесь. Сегодня мы поговорим о
- написании Recorder'а клавиш и координат на языке AutoIt
- написании Player'a инструкций для бота
- математике 2D, как ориентироваться в декартовой системе координат без теоремы косинусов
- управлении роботом при недостаточном количестве датчиков
- мерах противодействия ботам
.jpg)
Recorder
Наша задача: чтение цветов пикселей, определение нажатий клавиш, фоновая работа с возможностью приостановки, посылка кликов в приложение. Здесь как нельзя лучше подойдет язык AutoIt. Чтобы написать то же самое на Си, пришлось бы Читать полностью »
Создание несложного бота для WoW, программирование маршрутов
2013-08-12 в 7:56, admin, рубрики: autoit, diy или сделай сам, game development, Lua, tutorial, world of warcraft, wow, робототехника, метки: autoit, bot, lua, tutorial, world of warcraft, wow, аддон, робототехникаВведение
Прочитал недавно пост, в котором автор рассказал о своём боте для торговли на аукционе в игре World of Warcraft. Его персонаж бегал челноком на небольшие расстояния и выполнял конкретные действия, строго заданные в управляющей программе. Воспользовавшись его идеями, я решил пойти немного дальше: пусть персонаж будет способен бегать по маршруту длительностью хотя бы пять минут, при этом должна быть возможность записывать маршрут и выполняемые действия извне, не прибегая к изменению самой программы управления. Описанное мной является развитием поста-оригинала, тем не менее я постарался, чтобы его чтение не было обязательным.
В посте я опишу
- Процесс создания тривиального аддона для пользовательского интерфейса WoW на языке Lua
- Сериализация данных для передачи между частями системы
- Передача с помощью цвета пикселей
- Процесс управления персонажем на языке AutoIt
- Программа для записи выполняемых действий
- Программа для воспроизведения
- Мат.расчеты направления перемещения
- Почему не стоит прибегать к чтению/записи памяти процесса
- Программа управления (ро)ботом с командами, понятными непрограммисту
Single sign-on на omniauth и rails
2013-08-08 в 13:32, admin, рубрики: oauth 2.0, omniauth, ruby on rails, single sign on, SSO, tutorial, Веб-разработка, метки: oauth 2.0, omniauth, ruby on rails, single sign on, SSO, tutorial 
Аутентификация пользователей в экосистемах наподобие Google или Envato реализована в виде отдельных сервисов (accounts.google.com, account.envato.com), предоставляющих необходимые данные и токены сайтам-клиентам. В ходе разработки некоторых проектов на Ruby on Rails мне и пришлось столкнуться с подобной задачей. По-научному — single sign-on или технология единого входа.
Нужен был (1) общий сервис для всех сайтов экосистемы, с (2) преимущественно социальной авторизацией, в угоду входу по связке «логин+пароль».
Сервис, (3) аккумулирующий в себе данные из тех социальных сервисов, с помощью которых пользователь входит в систему, и (4) предоставляющий эти данные сайтам-клиентам.
Задача оказалась настолько же интересной, насколько и нестандартной. Началось все с полезной, но уже немного устаревшей статьи — автор предлагал использовать гем omniauth и кастомную стратегию на сайтах клиентах, а на сайте-провайдере — использовать тот же omniauth в связке с devise для аутентификации через соц. сервисы.
Devise в моем случае подходил мало (завязка на логине+пароле), поэтому предпочтение было полностью отдано omniauth. С этого и началось мое маленькое приключение, о ходе которого предлагаю вам ознакомиться в данной статье.
Читать полностью »
Делегат на С++11
2013-07-11 в 17:48, admin, рубрики: c++, c++11, tutorial, Песочница, метки: c++11, tutorial, оопВсем привет!
Писал когда-то статью, почти такую же (Делегат на С++).
После этого, начал изучать новые технологии (в частности С++11), где мне понравилась новая возможность, которая называется «Variadic Templates». В общем, изучение и использование новых возможностей этого языка и побудило меня к написанию этой статьи.
Читать полностью »
