Как ограничить скорость (трафик) CentOS

Как ограничить скорость (трафик) CentOS

Иногда возникает проблема, когда какой-то пользователь в VPS или на выделенном (dedicated) сервере в стойке "жрет" общий канал, и его, (инет канала), не хватает другим клиентам в этой же стойке. (Имеется в виду, что вся стойка подключена к одному инет каналу)

Качаем написанный уже код (вирусов нет - проверено =)

cd /etc/rc.d/

wget http://webnoob.info/downloads/shape.tar

tar -xpf shape.tar

А теперь настраиваем данный скрипт, в файле rc.shape.down.classes нас интересует строчка:

$TC class add dev $DEV_P1_DOWN parent 1:1 classid 1:900 htb rate 20Mbit ceil 20Mbit

20Mbit - это и есть наш лимит канала ...

Читать далее

South migrate: как поле ForeignKey сделать ManyToMany без потери данных

South migrate: как поле ForeignKey сделать ManyToMany без потери данных

В одном из проектов мне необходимо было ForeignKey превратить в ManyToMany без потери данных. Русского мануала я не нашел для этого. Но нашел статейку на английском и, исправив ошибки в ней, решил сделать русский вариант.

Итак, задача - нужно превратить поля таблицы базы данных с отношенияем FK в M2M отношения при помощи South и при этом не потерять существующие заполненные данные.

1. Вот исходная модель (образец), приложение  назовем appz, допустим.

class TestData(models.Model):
    field1 = models.CharField(max_length=200)
    field2 = models.CharField(max_length=200)

class Knight(models.Model):
    name = models.CharField(max_length=100)
    additional_field_new_name = models.CharField(max_length=155, default='')
    data ...

Читать далее

Django аутентификация. Email-адрес вместо имени пользователей

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

Чтобы написать простую аутентификацию по email на стороне
сервера в джанго, поступим  следующим образом:

1. В settings.py добавим следующие строки (замените youproject именем вашего приложения):

AUTHENTICATION_BACKENDS = (
    'youproject.backends.EmailAuthBackEnd',
    'django.contrib.auth.backends.ModelBackend',
)

2. Создайте файл с именем backends.py с таким соержанием и поместите его в корневой папке (т.е. той же папке, settings.py)

from ...

Читать далее

Zinnia и его альтернативы

Zinnia и его альтернативы

На Django (джанго) при желании можно самому сесть и написать простенький блог буквально за час c довольно немалыми возможностями. Да! И это будет ваш код и Вы будете знать что делается у вас на сайте и как :).

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

Читать далее

Продвижение неизбежно - проверим работу поисковиков?

Продвижение неизбежно - проверим работу поисковиков?

Продвижение неизбежно - конкурс от сайта webmasters.ru меня заинтересовал как материально так и спортивным азартом соревнования в продвижении.

Суть конкурса

Продвинуть два слова неизбежное продвижение как можно выше( фраза употреблена только в целях СЕО...). Конкурс интересен, тем более обещают положить что-то в кошелек :), если попасть в ТОПы. Так почему бы не проверить и свои силы в этом деле? Ну и заодно проверить или работают некоторые методы продвижения. Некорые, возможно, считают неизбежно продвигать невозможно (эта фраза всего лишь только в целях продвинуть ... )? Но, так как основной интерес состоит в том, чтоб это продвижение состоялось абсолютно без затрат, я буду пробовать поднять ...

Читать далее

Система вопрос-ответ osqa на сайте

Система вопрос-ответ osqa на сайте

Приветствую, уважаемый читатель моей колонки.

Долго я думал над тем чем бы таким заменить возможности форума и иметь возможность помогать посетителям решать проблемы. И вот сегодня я определился, что наиболее удачным для моего сайта будет система open source Q&A - система Вопрос-Ответ с открытым исходным кодом. Это то что Вы видите при попадании на главную (при нажатии на название сайта в верху, например)

Почему именно она ?
Ну во впервых она написана на с использованием Django и у нее открытый исходный код. Ну и перепробовав еще несколько для сравнения мне эта наиболее понравилась как не особо нагроможденная и с большим функционалом ...

Читать далее

Установка и настройка NFS в Linux CentOS

Установка и настройка NFS в Linux CentOS

Network File System (NFS) — протокол сетевого доступа к файловым системам, первоначально разработан Sun Microsystems в 1984 году. Основан на протоколе вызова удалённых процедур (ONC RPC, Open Network Computing Remote Procedure Call, RFC 1057, RFC 1831. Позволяет подключать (монтировать) удалённые файловые системы через сеть.

NFS обычно уже есть в системе. Это можно проверить так:

chkconfig --list nfs
nfs             0:off   1:off   2:on    3:on    4:on    5:on    6:off

Добавляем в автозагрузку и стартуем

chkconfig nfs on 
chkconfig portmap on
service portmap start 
service nfs start

Если же NFS не стоит - ставим из репозитария:

yum -y install nfs-utils ...

Читать далее

Защищённая авторизация: Javascript+PHP+MD5

Если возникает проблема отправки данных на сервер защищённым способом (особенно это касается логина и пароля пользователя), а использовать SSL нет возможности, то можно воспользоваться вот таким решением.Качаем отсюда файл md5.js (реализация алгоритма шифрования md5 на JavaScript).Создаём страницу с формой авторизации

<?php $_SESSION['key'] = mt_rand();?><br><scripttype="text/javascript"src="js/md5.js"></script><br><scripttype="text/javascript"src="js/secure.js"></script><br><formaction="login.php"method="post"onsubmit="return crypt_form(this, 'key', 'hash')"><br> Login:<br><inputtype="text"name="login"/><br>    Password:<br><inputtype="password name="pass" /><br><input type="submit ...

Читать далее

Транслит средствами JS. Пример из жизни

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

Для начала - скрипт, выполняющий преобразование.



Код не мой, взят отсюда, я только чуть переделал его с учётом поставленной задачи (написать что-то своё на то время просто не было возможности). Вся суть заключается в использовании ассоциативных массивов(хэшей) в качестве "словарей" - каждой английской букве/буквосочетанию ставится в соответствие буква русская. При загрузке скрипта алгоритм транслитерации будет автоматически применён к первому элементу textarea на странице.

Теперь размещаем скрипт где-нибудь на общедоступном сервере, а затем создаём ссылку-букмарклет вот такого содержания:

<a href='javascript ...

Читать далее

Валидатор форм на стороне клиента

Этот скрипт позволяет быстро организовать проверку форм на сайте. Написал для себя в ходе одного из последних проектов, ибо надоело всё время писать конструкции вида

  1. if(!(document.forms[0].login.value)){
  2.     /*bla-bla-bla*/
  3. elseif(!(document.forms[0].password.value)){
  4.    /*bla-bla-bla*/
  5. }
  6. elseif(!(document.forms[0].email.value)){
  7.     /*bla-bla-bla*/
  8. }

Скрипт выглядит так.

  1. var js={
  2.     assoc:function(data, func){
  3. for(i in data)if(data[ i])func(data[ i], i);return data;
  4.     },
  5.   validate:function(frm, setup){
  6. var errFunc = arguments[2] || function(e){for(i in e)alert(i+':'+e[ i])}, errs = {}, cnt = 0, stop = arguments[3], deferr = arguments[4], ip = function(c ...

Читать далее