четверг, 11 марта 2010 г.

Hello, world! на Django

Итак, разработка на Django, шаг второй. Пишем хеллоуворлд.

  1. В директории вашего проекта создаем файл представление (например views.py).
  2. В файле представления пишем:
    # -*- coding: utf-8 -*-
    from django.http import HttpResponse

    def hello(request):
    return HttpResponse("Здравствуй, Мир")

  3. Связываем функцию с URL, для этого в файле urls.py после строки
    from django.conf.urls.defaults import *
    добавляем импорт нашей функции из файла представления
    from mysite.views import hello
    а после строки
    urlpatterns = patterns('',
    добавляем привязку функции к регулярному выражению
    ('^hello/$', hello),
  4. Стартуем сервер python manage.py runserver
  5. Смотрим вывод функции hello на http://127.0.0.1:8000/hello/

четверг, 25 февраля 2010 г.

Полезные модули для Drupal. Часть 1

Этим топиком, я начинаю цикл статей, о разнообразных полезных модулях для CMS Drupal.

  • Модуль Apply for role позволяет пользователям отправлять запросы из своего аккаунта администраторам, для включения их в определённую роль.
  • Модуль Archive позволяет просматривать документы по дате создания, а также фильтровать их по типам. Этот модуль заменяет стандартный модуль Archive, который включался в Drupal 4.7.x и более ранние версии системы. Необходимый и очень правильный модуль, построенный на технологии AJAX. Наверняка у вас такое бывало: напечатали много текста, обдумали его и вдруг нажали не на ту кнопку, браузер закрылся или сообщение стёрлось или вообще перезагрузился компьютер. Теперь вам нужно вспоминать свои собственные мысли и не факт, что это вам удастся, во всяком случае, многие интересные мысли и выражения будут утеряны.
  • Модуль Autosave избавляет нас от этого недоразумения. Он создаёт ревизии для редактируемого документа через определённое количество миллисекунд (опция настраивается). Плюсы очевидны: вы больше никогда не потеряете свою информацию, фактически, вы можете создавать новые статьи прямо в браузере, нет нужды делать это в каком-либо текстовом редакторе, ну и наконец, вы освобождены от страхов. Немало для такого простого модуля, не так ли? Модуль работает только в версии 5.0 и выше, использует jQuery Form Plugin и настраивается элементарно. Нужно просто на странице ваших типов контента перейти на вкладку "Autosave" и отметить необходимые опции. Да и уверяю вас 10000 миллисекунд - этого достаточно, меньше указывать совершенно не нужно, можно больше...

На сладкое: Модуль Backup and Migrate выполняет задачи по созданию и восстановлению базы данных сайта, а также может использоваться для переноса данных с одного сайта на другой. Модуль поддерживает сжатие gzip, bzip и zip и автоматическое выполнение заданий по расписанию. При создании и восстановлении архива базы можно выбирать таблицы, сохранять файл в папке или скачивать с сервера. По умолчанию таблицы с кешем в архив не включаются. Файлы архивов защищаются от общего доступа правилами в файле .htaccess.

Взято с http://setegnom.com/

Быстрый старт в Django

Проект в django может быть самостоятельным приложением, но в большой степени это просто структура директорий и настройки общие для всех приложений внутри. А приложение - это как раз код, который выполняется.

django-admin.py startproject newproj

Создать приложение можно с помощью команды: python manage.py startapp newapp

Перед запуском надо записать изменения в базу данных (если она используется): python manage.py syncdb

Также можно проверить на ошибки: python manage.py validate

Запустить проект: python manage.py runserver

Зайти по адресу: "http://127.0.0.1:8000/"

пятница, 27 ноября 2009 г.

Amarok не воспроизводит музыку

Столкнулся недавно с такой проблемой - amarok отказывается воспроизводить любую музыку, объясняя это наличием множества ошибок. Оказывается, проблема была в backend`е. Все решилось установкой и настройкой phonon-xine.

четверг, 26 ноября 2009 г.

Пробую blog-клиент Blogilo (бывший Bilbo)

Очень приятная вешь. Сразу подружился с моим google аккаунтом, подхватил оба блога. Довольно прост в настройке и, что на удивление, удобен в использовании. Есть визуальный редактор, редактор html, предпросмотр публикуемого поста (с возможностью просмотра в стиле вашего блога), возможность локального сохранения поста, с последующей публикацией. Возможность загрузки медиа-файлов. Мне понравилось, буду использовать.

вторник, 17 ноября 2009 г.

Если индеец молчит...

Бывает так, что apache отказывается показывать ошибки, так необходимые для дебага, несмотря на то, что в php.ini стоит display_errors=On. Для того, чтобы это исправить, поставте в своем php коде:
ini_set('display_errors', 'On');

пятница, 13 ноября 2009 г.

Samba

Самба-румба! Как расшарить что-нибудь в samba:



1. Устанавливаем samba
2. В smb.conf пишем
[files]
path = /media/
read only = Yes
guest ok = Yes

3. Добавляем пользователя
smbpasswd -a

4. Заходим на шару под логином и паролем.

вторник, 10 ноября 2009 г.

Git. Шаг за шагом.

Всем привет, еще одна запись в блоге. Как пользоватся GitHUB шаг за шагом. Собственно шаг первый, для начинающих пользователей git.

1. Заведите себе аккаунт на github`е. Я выбрал бесплатный, open source план.
2. Зайдите в свой акаунт и создайте новый репозитарий.
3. Скачайте и установите git.
4. Сконфигурируйте свой git.
git config --global user.name "ваше имя"
git config --global user.email ваша@почта

5. Создайте свой SSH-ключ. Для этого, в консоли, сгенерируйте ключ с помощью утилиты ssh-keygen. По умолчанию, Вы можете посмотреть его cat ~/.ssh/id_rsa.pub
6. Добавьте этот ключ в Ваш аккаунт на github`е.
7. Создайте локальный репозитарий
mkdir test
cd test
git init

8. Добавте туда свой проект. Например файл README
touch README
git add README
git commit -m 'Первый коммит'
git remote add origin git@github.com:ВашеИмя/ВашРепозитарий.git
git push origin master

9. Вуаля!

суббота, 24 октября 2009 г.

Настройка сети из консоли

Чтобы постоянно не забывать, просто оставлю это здесь.

# ifconfig eth0 down
# ifconfig eth0 <Ваш IP> netmask <Ваша маска> hw ether <Ваш MAC-адрес>
# route add default gw <Ваш шлюз>
# sudo echo "nameserver <Ваш DNS сервер>" >> /etc/resolv.conf
# ifconfig eth0 up

пятница, 4 сентября 2009 г.

Постраничный вывод информации из БД на php и sql

Изобретаю велосипед. Надо-бы оптимизировать еще...


<?php
$rec_per_page = 3;
// Считаем сколько у нас будет страниц
$query = "SELECT * FROM $userstable";
$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);
$pages=round($number/$rec_per_page);
/* Как же я тут матерился... Список страниц.*/
if($current_page!=0) {
$temp = $current_page - 1;
echo '<a href="'.$module.'&page='.$temp.'">←</a> ' ;
}
else echo '← ';
for ($i=0;$i<=$pages;$i++) {
$temp = $i + 1;
if($i!=$current_page) {
echo ' <a href="'.$module.'&page='.$i.'">'.$temp.'</a> ';
}
else {
echo $temp;
}
}
if($current_page!=$pages) {
$temp = $current_page + 1;
echo ' <a href="'.$module.'&page='.$temp.'">→</a>';
}
else echo ' →';

/* Пошел вывод из базы */
/* Выбрать страницу */
$query = "SELECT * FROM $userstable ORDER BY id DESC LIMIT ".intval($current_page*$rec_per_page).", ".intval($rec_per_page);

$res = mysql_query($query) or die(mysql_error());
$number = mysql_num_rows($res);
if ($number == 0) {
echo "<CENTER>В базе данных ничего нет</CENTER>";
} else {
while ($row=mysql_fetch_array($res)) {
echo '<p align="left"><strong>Вопрос: </strong> <i>'.$row['question'].'</i><br><strong>Ответ: </strong>'.$row['answer'].'<br>'.$row['date'].'</p>';
}
?>


Ниче так.

вторник, 1 сентября 2009 г.

Gmail забавляет


СОТНИ!!!11

Конвертация текстовых файлов из Windows в Linux и обратно

Windows->Linux

#cat win | tr -d ‘\r’ > nix
#sed s/\\r// win_file > nix_file

Linux->Windows

#sed s/$/\\r/ nix_file > win_file

суббота, 22 августа 2009 г.

Автомонтирование ntfs разделов с cp1251 кодировкой

Добавить в /etc/fstab 

/dev/sda1 /media/sda1 ntfs-3g defaults,locale=ru_RU.CP1251 0 1

Вместо /dev/sda1 укажите ваш раздел, а вместо /media/sda1 путь, куда будет монтироваться раздел.

среда, 19 августа 2009 г.

Подсветка синтаксиса php в nano

Создаем конфиг

nano /usr/share/nano/php.nanorc

Куда пишем

syntax "php" "\.(php|ctp)$"
color brightblue start="<\?(php)?" end="\?>"
color blue start="<[^\?]" end="[^\?]>"
color white "(var|class|function|echo|case|break|default|exit|switch|if|else|elseif|@|while)\s"
color cyan "\$[a-zA-Z_0-9]*"
color cyan "(\[)|(\])"
color red "="
color green "[,{}()]"
color green "=="
color green "('[^']*')|(\"[^"]*\")"
color yellow start=""
color yellow start="/\*" end="\*/"
color yellow start="#" end="$"
color yellow start="//" end="$"

Подключаем конфиг

echo "include \"/usr/share/nano/php.nanorc\"" >> /etc/nanorc


Готово!

Отсюда

четверг, 13 августа 2009 г.

Qt и зависимости

Те кто только начали разбираться в Qt, вместе с qt-creator советую качать еще libqt4-dev

Для ubuntu: sudo apt-get install libqt4-dev

среда, 15 июля 2009 г.

Добавляем ключи в ubuntu

Все просто:
gpg --keyserver subkeys.pgp.net --recv (здесь ваш ключ)
gpg --export --armor (здесь ваш ключ) | sudo apt-key add -


Или еще проще:
apt-key adv --recv-keys --keyserver subkeys.pgp.net (здесь ваш ключ)

вторник, 2 июня 2009 г.

Bash

#!/bin/bash
COUNTER=0
while [ $COUNTER -lt 10 ]; do
     echo The Counter is $COUNTER
     wget http://****/www.tar.gz
rm www.tar.gz
let COUNTER=COUNTER+1
done

воскресенье, 24 мая 2009 г.

Linux Distribution Chooser

Очень интересная вещица. Выбор подходящего для вас дистрибутива Linux.

Мне подошли Slackware (90%) и Gentoo (90%) :)

среда, 13 мая 2009 г.

KDE 4.3 Beta1



Вот и увидела свет первая бета версия KDE 4.3





13 Мая, разработчики моего любимого DE аннонсировали выход первой беты 4.3.





Главные новшества:

* Интегрирована поддержка PolicyKit для управления правами пользователей, создание политик ограничения доступа к различным подсистемам и делегирование пользователям отдельных повышенных привилегий;
* Возвращен привычный древовидный менеджер настроек KControl. Добавлен модуль настройки для привязки действий к различным аппаратным событиям;
* Добавлена поддержка сервисов геопозиционирования;
* Реализованы новые анимационные эффекты для окон, улучшено юзабилити всплывающего диалога Run Command;
* В менеджере управления персональной информацией Akonadi добавлена поддержка синхронизации с Google Calendar;
* В KMail появилась возможность вставки изображений в текст сообщений;
* Поддержка настройки клавиатурных комбинаций для Plasma.
* Возможность предварительного просмотра содержимого директории в Plasma;
* Поддержка форматирования текста в knotes;
* Возможность предварительного просмотра видео контента в Dolphin;
* Расширение JavaScript API;
* Новые плазмойды: Bubble Monitor (системный монитор), Magnifique ("увеличительное стекло"), Media Player, openDesktop (плазмойд для организации социального десктопа), Remember The Milk Plasmoid (управление планированием решения задач), Unit converter. 



вторник, 12 мая 2009 г.

Доза!

Читал только что securitylab.ru и наткнулся на такую новость: Екатеринбуржца судят за пиратскую Windows на домашнем компьютере. Осудили парня на штраф в размере до 200 тысяч рублей, либо обязательные работы на срок от 180 до 240 часов, либо лишение свободы на срок до 2 лет.


Иванчиков-Нееловский в марте 2009 года у себя дома на системный блок установил программное обеспечение, обладающее признаками контрафактности: «Microsoft Windows Professional SP3/ Русская версия», «Microsoft Office 2007. Русская версия», и другие программы, правообладателями которых являются корпорация Microsoft. Указанные программы являются объектами авторского права, их общая стоимость составляет более 125 тысяч рублей.

Комментарии на секлабе как всегда жгут:



Кстати да, дело и желтоновость о нем удивительным образом совпадает с началом раздачи бесплатной седьмой дозы (http://www.google.com.ua/search?hl=ru&q=windows+7+бесплатно).


Да нет, дело в том, что у M$ упали доходы http://www.vesti.ru/doc.html?id=242171


Так что ждем седьмой дозы...