Архив Май 2011 г.

Система вопрос-ответ 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 ...

Читать далее

Пример работы с AJAX. Набор функций.

Простой набор функций для построения клиентской части AJAX-приложения.

var ajax = {
   /* Отправляет запрос к серверу. Базовая функция, все остальные являются обёртками для неё */
   query:function(url, ok){
      var req = (function(){
         /* Создаём AJAX-объект */
         try{return new XMLHttpRequest()}
         catch(e)
         {
            try{return new ActiveXObject('Microsoft.XMLHTTP')}
            catch(e){throw new Error('Your browser does not support AJAX')}
         }
      })(), a = arguments, c_err = a[2] || function(){}, data = a[3], mtd = a[4]||(data?'POST':'GET');
      with(req){
         /* Вешаем обработчик */
         onreadystatechange =function(){
            if(readyState == 4 && ok)(/200|304/.test(status)?ok:c_err)(req);
         };
         open(mtd, url, true);
         /* Выставляем нужные заголовки и отправляем запрос */
         if(mtd=='POST')setRequestHeader ...

Читать далее

Изменение размера swap-файла при помощи файлов. Resize swap.

Иногда бывает что при установки приложений. Я например ставил Сервер Oracle требуется временно увеличить размер свопа, иначе ставиться не хочет. Можно делать это просто создавая обычные файлы и монтировать их в основному свопу как оказаывается. Все очень просто ...

Например "своп_файл" = /mnt/swap1

dd if=/dev/zero of=своп_файл bs=1024 count=размер_свопа_в_кбайтах mkswap своп_файлswapon своп_файл

вот и все ...

На заметку: Менеджеp памяти Linux огpаничивает pазмеp любой swap области 127.5 мегабайтами. Может быть создана swap область большего pазмеpа, но будут использоваться только пеpвые 127.5 Мб. Однако можно создать до 16 swap областей с общим объемом почти 2 Гб ...

Читать далее

Как включить подсветку ситаксиса в vi (vim)? Отвечаем.

Для этого необходимо отредактировать файл /etc/vmrc или может быть /etc/vim/vmrc:

#sudo vi /etc/vim/vimrc

находим строку

"syntax on

удалем комментарий (")

syntax on

и сохраняем. вот и все.

Если вы хотите использовать более контрастные цвета в подсветке синтаксиса можно еще раскоментировать параметр

set background=dark

Читать далее

Конвертирование текста в поле ввода из русского в английский. Вставка BB-кодов в текстовое поле.

Конвертирование текста в поле ввода из русской раскладки в английскую и обратно.

<script type="text/javascript">
function convertLayout(e, elem)
{
   e = e || window.event;
   var eng='qwertyuiop[]asdfghjkl;\'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?@#$^&|';
   var rus='йцукенгшщзхъфывапролджэячсмитьбю.ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,"№;:?/';
   var src=elem.value;
   if((e.ctrlKey) && ((e.keyCode == 0xA) || (e.keyCode == 0xD)))
   {
           for(i=0;i<src.length;i++){
         for(j=0;j<eng.length;j++)
         {
            if(src.substr(i,1)==eng.substr(j,1))
               src=src.replace(src.substr(i,1),rus.substr(j,1));
            else if(src.substr(i,1)==(rus.substr(j,1)))
               src=src.replace(src.substr(i,1 ...

Читать далее

Установка Skype в Linux\Debian

Установить последнюю версию skype можно с помощью вот таких вот команд

wget -c -P /tmp/ http://www.skype.com/go/getskype-linux-deb-32
dpkg -i /tmp/getskype-linux-deb-32
sudo apt-get -f install

При появлении зеленого цвета вместо изображения камеры запустите skype так:

LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

если все исправилось тогда делаем файлик

sudo gedit /usr/bin/skype2

туда ложим код ( для 32 разрядных систем)

#!/bin/sh
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype

и делаем его выполняемым

sudo chmod +x /usr/bin/skype2

Теперь можно запускать skype командой skype2 или сделать ярлык

Иногда бывает указать libv4l недостаточно ... и при старте ...

Читать далее

Настройка звука в Ubuntu. Установка ALSA драйвера для hda-intel.

Искал информацию как установить alsa из исходников. У меня звукова карта Hda-intel. Накопал такое...

Сходить на alsa-project.org нужно и оттуда выкачать последнюю версию (на этот момент 1.0.24 ).

1.Устанавливаем необходимые пакеты для сборки ПО из исходных текстов и для сборки АЛСА:

sudo apt-get install linux-headers-`uname -r` build-essential gcc gawk libgettext-ruby-util libgettext-ruby1.8 libncurses5-dev xmlto

xmlto - это только то что касается АЛСА - так как при сборке ругалось что нехватает ...


2.Качаем исходники ALSA с официального сайта

wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.24.tar.bz2
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0 ...

Читать далее

many-to-many и many-to-one relationships в django

Часто спрашивают, что значит в моделях django:
one-to-one
one-to-many
many-to-one
many-to-many

Это все из теории баз данных. Немножко распишу.

one-to-one -> один к одному
это говорит что бве таблицы между собой связываются по 1 полю и в каждой из них это поле имеет 1 единственное уникальное значение.
для примера если у вас есть таблица users ( id, login, pass ) и таблица profile( id, user_id, name, icq )
Так вот тут например для каждого пользователя не можно создавать 2 профиля поэтому будет связь 1 к 1 то есть для 1 пользователя 1 профиль. и связь через поля user.id = profile.user_id

one-to-many -> один ко ...

Читать далее

Рекомендации и удобства по работе с python и django

Для проверки настройки параметров базы в django (которые указываются в settings.py) зайдите в django shell (manage.py shell) и выполните такие команды:

from django.db import connection
cursor = connection.cursor()

Если не было сообщений о ошибке, значит все ОК, иначе – что-то не правильно указали.Для просмотра подключенных модулей для текущего python: в обычной консоле набирите:

python -c "help('modules')"


или в интерактивном интерпретаторе python’a:

help('modules')

Для просмотра PYTHONPATH в консоле python наберите:

import sys
sys.path

В django существует два простых способа просмотра значений переменных при отладке:
* при помощи обычного print
* вставка оператора assert False, variable_name , где ...

Читать далее

Быстрый доступ к функциям Панели управления и оснасткам MMC

Большинство компонентов Панели управления WIndows (или апплетов Панели управления, Control Panel Applets) представляют собой файлы с расширением .cpl. И быстро получить доступ к ним можно из командной строки (командой "Пуск - Выполнить" или в окне cmd). Для этого необходимо выполнить команду:

control имя_файла.cpl

или просто

имя_файла.cpl

Вот список некоторых основных приложений Панели управления:

alsndmgr.cpl - Realtek Sound Manager. Утилита для расширенной настройки звуковых параметров. Обычно устанавливается вместе с драйверами для звуковых карт Realtek.
access.cpl - специальные возможности (залипание клавиш, управление указателем мыши с клавиатуры etc.).
appwiz.cpl - установка/удаление программ.
desk.cpl - свойства Рабочего стола (заставка, обои, настройка параметров ...

Читать далее

rundll32 и доступ к системным функциям

rundll32 - это средство командной строки, позволяющие выполнять некоторые функции, экспортируемые из DLL-библиотек. Его "предшественником" был rundll, использовавшийся в 16-разрядных версиях Windows. Эта прога позволяет выполнять функции только из тех DLL, в которые подобная возможность была заложена при разработке.Синтаксис команды rundll32 такой:

rundll32 <dllname>,<entrypoint> <optional arguments>

dllname - название библиотеки.
entrypoint - имя процедуры/функции.
optional arguments - параметры.

Вот список некоторых команд, которые можно выполнять с помощью rundll32:

rundll32 shell32,Control_RunDLL hotplug.dll - диалоговое окно "Безопасное извлечение устройства"
rundll32 diskcopy,DiskCopyRunDll - вызов диалога "Копирование диска"
rundll32 mshtml.dll,PrintHTML "HtmlFileNameAndPath" - распечатать документ HTML, где "HtmlFileNameAndPath" - путь к файлу и его имя ...

Читать далее

Некоторые полезные команды Windows

sfc /scannow - восстановление системных файлов.
iexpress - стандартный системный архиватор для работы с файлами формата CAB.
chkdsk - проверка дисков
fsquirt - мастер передачи файлов Bluetooth
msconfig - настройка системы
msinfo32 - сведения о системе
clipbrd - управление буфером обмена.
sigverif - проверка цифровой подписи у системных файлов.
mstsc - подключение к удалённому рабочему столу.
regedit - редактор реестра
eudcedit - редактор личных символов
dxdiag - служба диагностики DirectX
assoc - вывод либо изменение сопоставлений по расширениям имен файлов
cacls - отображение/редактирование списков управления доступом (ACL) к файлам
chcp - вывод либо установка активной кодовой страницы
comp - сравнение содержимого двух файлов или двух наборов файлов
compact - отображение/изменение сжатия файлов в разделах NTFS ...

Читать далее

Управление CD/DVD-приводом с помощью Windows Scripting Host

Когда искал инфу по виндовым командам, случайно наткнулся на вот такую вот прикольную вещь)) В данном примере в качестве языка используется VBScript, но можно использовать и JS.Создаём файл с расширением .vbs и пишем там вот такой код:

  1. Set oWMP = CreateObject("WMPlayer.OCX.7" ) 
  2. Set colCDROMs = oWMP.cdromCollection 
  3. colCDROMs.Item(Wscript.arguments.Item(0)).Eject 
  4. Wscript.CreateObject("Wscript.Shell").Run "taskkill /im wscript.exe /f"

В первой строчке создаётся объект WMPLayer.OCX, в составе которого имеется множество свойств и методов для управления мультимедийным контентом. В том числе и коллекция (массив объектов) cdromCollection, элементы которой соответствуют всем оптическим приводам, установленным в ...

Читать далее

Empaty - Проблемы с ICQ

В этой статье буду обновлять все мои проблемы в использовании Empaty и возможные их решения. Чаще всего они случаются с ICQ.

Если при подключении ICQ в Empathy возникает ошибка “Network error”.

Часто эта проблема решается достаточно просто, временным отключением SSL для ICQ. Для этого в консоли прописывается:

$ mc-tool list | grep icq
$ mc-tool update haze/icq/_***** bool:use-ssl=false
$ mc-tool update haze/icq/_***** bool:use-clientlogin=false

***** нужно заменить на число, полученное в результате выполнения первой команды.

После перезапуска ошибка исчезает.

Если появляется ошибка “Authentication failed”.

Следует сменить сервер подключения login.messaging.aol.com на login.icq.com

Для сброса ...

Читать далее

Ежедневные архивы