суботу, 24 січня 2009 р.

Встановлюємо клієнт Last.fm в Ubuntu

Last.fm - це просто вражаючий сервіс, для любителів музики. І хоча користуватися ним можна й використовуючи штатний для Ubuntu плеєр Rhythmbox, однак існує й офіційний клієнт, що має ряд додаткових можливостей. Встановлюється дуже просто.
sudo apt-get install lastfm

Ось, що ми отримаємо в результаті:

вівторок, 20 січня 2009 р.

Перетворюємо Firefox на веб-сервер

Я рідко користуюся PHP, віддаючи перевагу у веб-розробці Python. Але, тим не менш, для ряду задач і PHP буває виправданим. При цьому, як виявляється, щоб побачити свій "шедевр" у роботі, не обов'язково встановлювати Apache, можна обійтися плагіном для Firefox, який називається POW (Plain Old Webserver).

Завантажити POW

Після, встановлення POW, достатньо перезавантажити Firefox і сервер буде доступний за адресою http://localhost:6670/.


На сторінці по замовчуванню, внизу буде лінк, який вказуватиме на кореневий каталог сервера. Просто зкопіюйте його адресу в адресний рядок Nautilus'а і попадете до каталога htdocs. Додайте його у закладки, щоб потім легко знаходити. При бажанні, його також завжди можна змінити у налаштуваннях POW.

Далі, залишається встановити PHP і, наприклад, SQLite, щоб мати змогу працювати з базами даних:
sudo apt-get install php5-cgi php5-cli php5-sqlite

Також, якщо ви використовуєте SQLite, то можна ще встановити плагін для роботи з такими базами:
Завантажити SQLite Manager


І останній штрих, щоб все запрацювало - це відкрити файл startup.sjs, що знаходиться у підпапці system кореневої папки вашого сервера, і вставити туди наступне:
<?sjs
pow_server.APP_HANDLERS['php'] = '/usr/bin/php';
?>


Все, тепер можемо перевірити роботу нашого сервера. Створимо файл index.php наступного вмісту:
<?php
echo "Hello world"
?>

І наберемо у браузері адресу http://localhost:6670/index.php


Супер! Наш сервер працює. :)

понеділок, 19 січня 2009 р.

Pencil: проектуємо інтерфейси

Pencil - це доповнення до Firefox, яке представляє собою інструмент для проектування графічних інтерфейсів. Не так важливо, чи розробляєте ви онлайн проект чи пишете програму для десктопу, все одно на певному етапі вам може знадобитися інструмент який дозволяє швидко накидати схему інтерфейсу. Це особливо важливо, коли над проектом одночасно працюють декілька людей і звичайний листок паперу не підходить. Раніше я використовував для цього GIMP, але сьогодні спробував новий інструмент і залишився дуже задоволений. Редактор досить простий, але все необхідне є в наявності.



Офіційний сайт
Завантажити

Розгортаємо сайт на Django задарма

При роботі з Django існує одна проблема, яка дещо заважає на початковому етапі - обмежений вибір пропозицій по хостингу. Зокрема, я маю на увазі, безплатний хостинг (з платним якраз особливих проблем немає). Одна з компаній, яка надає такі послуги - французька Alwaysdata. Отже, не платячи нічого, ви отримуєте:

  • 10Мб дискового простору;

  • 1Гб місячної квоти на трафік;

  • 40Мб оперативної пам'яті;

  • Python 2.4 або 2.5, PHP5, Ruby 1.8.6, Perl 5.8.8;

  • офіційна підтримка Django та Ruby on Rails;

  • сумісність з TurboGears, Pylons, Symphony та ін.;

  • необмежена кількість баз mySQL або PostgreSQL;

  • phpMyAdmin та phpPgAdmin;

  • підтримка POP3, SMTP, IMAP;

  • доступ по FTP та SSH;

  • та багато ін.;


При цьому жодної реклами. Єдине, що дещо незвично - сайт Alwaysdata.com є повністю франкомовним. Це також стосується і адмінки, і вікі. Правда це справа звички, якщо ви хоча б на середньому рівні володієте англійською, то й тут розберетеся.

Отже, перш за все, зареєструємо новий аккаунт. Для цього входимо у розділ Inscription. У поле Nom du pack вводите назву аккаунту, а у Type de pack обираєте Pack gratuit (10Mo). Потім тиснемо Continuer l'inscription. Далі, заповнюєте анкету, у якій потрібно обов'язково вказати свою електронну пошту (Adresse email) і пароль до аккаунту (Type de pack та Confirmez le mot de passe). Інші поля є необов'язковими. Підтверджуєте, і отримуєте свій новий обліковий запис.


Попасти у панель адміністрування можна просто вбивши свою електронну пошту і пароль на горі сторінки, у блоці Connexion. Потім тиснете Valider і попадаєте в адмінку.


Виконаємо деяке початкове налаштування. У розділі Environnement -> Python оберемо потрібну версію Python і Django.


Далі, створимо базу даних. Тут є вибір між mySQL та PostgreSQL. Достатньо обрати у розділі Bases de données бажану платформу, а потім створити нову базу натиснувши Ajouter une base de données. У поле Nom потрібно ввести ім'я бази. Кодування по замовчуванню пропонується UTF-8, тк і потрібно бути. Після натиснення Ajouter у вас з'явиться нова база.


Ще нам знадобиться доступ по SSH. По замовчуванню, він заборонений, а тому потрібно перейти у Accès distant -> SSH і активувати дану опцію (по замовчуванню для аккаунту встановлено non, тому натискаємо Modifier, щоб мати змогу змінити на oui).


ОК, наступним етапом потрібно завантажити на сервер наш сайт. Для цього, можна скористатися будь-яким FTP-клієнтом. Я віддаю перевагу FileZilla (sudo apt-get install filezilla). Параметри підключення наступні:
Хост: ftp.alwaysdata.com
Порт: 21

Логін і пароль відповідно, ті, що ви вводили при реєстрації. У кореневій папці, яку вам виділено, ви можете побачити єдиний файл index.html. Це файл-заглушка, яку можна побачивши набравши у браузері http://ваш_логін.alwaysdata.net/. Папку з вашим Django проектом потрібно помістити сюди ж.

Наступним кроком, запускаємо термінал і набираємо команду:
ssh ваш_логін@ssh.alwaysdata.com

Вводимо пароль і попадаємо у вашу домашню папку на сервері Alwaysdata. Щоб працювати було простіше, можна запустити Midnight Commander (команда mc). Наступним кроком, потрібно перейти у папку з проектом і створити підпапку public. Далі переходимо в неї і створюємо файл django.fcgi з наступним вмістом:
#!/usr/bin/python
import os, sys

_PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, _PROJECT_DIR)
sys.path.insert(0, os.path.dirname(_PROJECT_DIR))

_PROJECT_NAME = _PROJECT_DIR.split('/')[-1]
os.environ['DJANGO_SETTINGS_MODULE'] = "%s.settings" % _PROJECT_NAME

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

І встановлюємо йому права на виконання:
chmod +x django.fcgi

Далі, створюємо файл .htaccess з наступним вмістом:
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]

І, якщо ви використовуєте адмінку Django, то потрібно ще виконати команду
ln -s /var/lib/python/django/1.0/django/contrib/admin/media/ media

Тепер, повертаємося у папку з проектом і у файлі setings.py прписуємо необхідні параметри бази даних. Якщо ви використовуєте mySQL, то це буде виглядати приблизно так:
DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'назва_бази_даних'
DATABASE_USER = 'логін'
DATABASE_PASSWORD = 'пароль'
DATABASE_HOST = 'mysql.alwaysdata.com'
DATABASE_PORT = ''

Зберігши зміни, потрібно синхронізувати базу даних. Це звична операція:
python manage.py syncdb


Все, що тепер залишається - це перейти в адмінку вашого аккаунту, обрати Domaines і змінити кореневу папку вашого сайту.


Все. Тепер ви можете знайти свій сайт за адресою http://ваш_логін.alwaysdata.net/

неділю, 18 січня 2009 р.

Уроки GIMP: малюємо штамп

Нещодавно, у процесі розробки одного проекту, розбирався як створити зображення штампу в GIMP. Як виявилося, все досить просто. Спочатку створимо новий файл з білим фоном. Потім з допомогою інструменту Виділення еліпсу окреслюємо межі майбутнього штампу (щоб штамп вийшов круглим - тримаємо при цьому Shift). Далі обираємо Виділення -> У контур. Переходимо на панель контурів і у контекстному меню обираємо Обвести за контуром. Вказуємо товщину лінії, клацаємо Обвести і отримуємо наступне.


Далі, обираємо Виділення -> Зменшити і дещо зменшуємо розмір кругового виділення. І знову повторюємо попередні дії для того щоб намалювати внутрішнє коло.


Тепер з допомогою Виділення -> Збільшити знову збільшимо розмір кола, так щоб нове виділення проходило між вже створеними. Воно буде вказувати на середню лінію по якій буде проходити текст. Знову створюємо контур (Виділення -> У контур). Далі, обираємо інструмент Текст і створюємо необхідний текст. На даному етапі, абсолютно неважливо де він буде розміщений.


Тепер на панелі інструментів, у властивостях інструменту Текст натискаємо на кнопку Текст за контуром. В результаті буде створено новий видимий контур на основі набраного тексту, викривлений по раніше нами заданій траекторії. Тепер можемо видалити текстовий шар, він нам більше не знадобиться. Далі, на панелі Контури у контекстному меню щойно створеного контура, обираємо Контур -> Виділена область. Після цього, можемо видалити всі контури з панелі, вони нам теж більше не знадобляться. На зображенні ж тепер ми бачимо виділену область по контуру літер. Обираємо інструмент Пензель і у властивостях збільшуємо Масштаб, для зручності. Тепер пройшовшись по виділенню, заповнюємо його кольором. Далі, обраємо Виділення -> Зняти. Ось, що отримаємо в результаті.


Ну і ще раз скориставшись інструментом Текст, заповнюємо інформацією середину штампа. Отриманий тестовий шар об'єднуємо з фоном, обравши у контекстному меню шара Об'єднати з попереднім.


Тепер нам потрібно лише зробити штамп більш схожим на справжній. Для цього, створимо новий шар. У опції Тип заповнення шару оберемо Колір тла. В результаті, новий шар повністю закриє наш штамп. Тепер оберемо Фільтри -> Растерізація -> Хмари -> Різні плями. Далі вже йде творчість. Можна виділити опцію Турбулентність і поекспериментувати з параметри Розмір по X та Розмір по Y. З допомогою Колір -> Яскравість-Контраст, робимо отримане зображення більш контрастним і темним. Далі, з допомогою Фільтр -> Шум -> Вибір, додамо трохи шуму. Тут також можна поекспериментувати з опціями Випадковість та Повторів. Після застосування фільтру, обираємо на панелі Шари режим відображення нашого шару - Додавання. Результат буде наступним.


Об'єднаємо шари, обравши Звести зображення у контекстному меню шару. Далі, оберемо інструмент Обертання, перемістимо центр обертання у центр штампу і оберемо кут повороту (наприклад -20 градусів). Після підтвердження повороту, залишається лише кадрувати отримане зображення і ми отримаємо остаточний варіант штампу.


От і все, удачі вам з GIMP.

Icons: оновився набір іконок Fugue

Якщо ви розроблюєте веб-сайти, то швидше за все вам потрібні красиві іконки. Fugue - це чудовий набір з 1249 якісних іконок на різноманітну тематику. У новій версії з'явилося багато нових, зокрема довгоочікувана іконка user.



Офіційний сайт