среда, 8 декабря 2010 г.

Настройка принтера Canon LBP1120 в ubuntu 10.04



Вся настройка проводится при выключенном принтере.

Итак, начнем)

1. Надо скачать дровишки с сайте Canon. Нам нужна последняя версия драйверов, а именно 2.0.

2. Надо распаковать архив, в папке Driver, есть пакеты для Дебиана.

3. Сначала нужно установить cndrvcups-common_2.00-2_i386.deb, а потом cndrvcups-capt_2.00-2_i386.deb.

4. Перезапускаем CUPS:
sudo /etc/init.d/cups restart
5. Регистрируем принтер в системе:

sudo /usr/sbin/lpadmin -p LBP1120 -m CNCUPSLBP1120CAPTK.ppd -v ccp:/var/ccpd/fifo0 -E

6. Регистрируем принтер в установочном файле ccpd-демона:
sudo /usr/sbin/ccpdadmin -p LBP1120 -o /dev/usb/lp0
7. Запускаем ccpd:
sudo /etc/init.d/ccpd start
8. Добавляем ccpd в автозагрузку:
sudo update-rc.d ccpd defaults 20
9. Перезагружаем компьютер и в момент, когда появились белые строчки БИОСа или картинка с брендом вашей материнской платы включите принтер.

10. Зайдите в Система-Администрирование-Печать и там будут(почему непонятно), либо 1, либо 2 принтера. Если 2 (LBP1120 и LBP1120-2), то  выбираем первый и устанавливаем его по умолчанию.

11. Что бы увидеть состояние принтера, нужно ввести команду:
captstatusui -P LBP1120
Этот способ настройки принтеров Canon работает не только для модели 1120, а так же и для 2900 и подобных. В исходной статье как раз и рассматривается настройка модели 2900.


воскресенье, 21 ноября 2010 г.

eclipce и С++

Для работы с С++ в eclipce естественно нужно поставить плагин. Этот плагин называется CDT. Для установки сего плагина нужно добавить его репозиторий в пункте Install New Software... В адресе нужно указать
 http://download.eclipse.org/tools/cdt/releases/helios
Вот и все)

Теперь главное, чтоб в вашей системе стояли компилятор, дебагер и утилита make, иначе будет выдовать ошибки при компиляции и ругаться.

Для linux это gcc, gdb, make.

суббота, 13 ноября 2010 г.

Насторойкак VirtualHosts в Apache2 и Django+eclipse

Чтобы работать с django, комфортно работать,  нужно установить eclipce+Aptana plugin+ PyDev.

1. Установка eclipse
 sudo aptitude install eclipse
2. Установка Aptana и PyDev
В меню Help нужно выбрать пункт Install New Software...
Нажать кнопочку Add... и по очереди создать 2 записи. Одну для Aptana, другую для PyDev. То что нужно писать в адресе:
http://download.aptana.com/tools/studio/plugin/install/studio
http://pydev.org/updates
После, в предыдущем окне нужно поставить галочку.
А далее: далее, далее, далее...))
2. Настройка Apache2
Если сервер не установлен, то нужно естественно его установить
sudo aptitude install apache2
также нужно установить модуль, для работы python'a и собственно django с apache.
sudo aptitude install libapache2-mod-wsgi
Благо в ubuntu все модули, установленные пакетным менеджером, прописываются в конфигах сервера автоматически.
4. Создаем проект с названием second в eclipse.
Нажать New->Project... А дальше как на картинках)

5. Создание виртуального хоста.
В папке /etc/apache2/sites-available/ требуется создать файл с названием second.
sudo vim /etc/apache2/sites-available/second
В нем пишем примерно следующее:
      DocumentRoot /home/username/workspace/second/src/second/
        ServerAdmin mymail@mail
        ServerName second.ua
        WSGIScriptAlias / /home/username/workspace/second/src/second/apace/django.wsgi
        WSGIDaemonProcess username processes=2 maximum-requests=5 threads=1
        WSGIProcessGroup usergroup
        ErrorLog "|/usr/sbin/rotatelogs /var/log/apache2/cargo.error.%Y-%m-%d.log 86400"
        CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/cargo.access.%Y-%m-%d.log 86400" combined
        ServerSignature On

Надо понимать, что username это имя пользователя. Соответственно usergroup имя группы.

Делаем хост рабочим:
sudo a2ensite second
Теперь файл django.wsgi.
cd /home/funtifree/workspace/second/src/second/
mkdir apache
cd apache
vim django.wsgi
и  в него нужно записать следующее:
os.environ['DJANGO_SETTINGS_MODULE'] = 'first.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

path = '/home/username/workspace/second/src/'
if path not in sys.path:
    sys.path.append(path)

path1 = '/home/username/workspace/second/src/second/'
if path1 not in sys.path:
    sys.path.append(path)
Все!!!

Теперь можно перезапустить apache и посмотреть что получилось)
sudo /etc/init.d/apache2 reload

четверг, 16 сентября 2010 г.

Postgresql в Windows. Установка и импорт старой базы.

Установка нового сервера.
Через "Управление" в Моем компьютере создаем пользователя postgres. Копируем PostgerSQL на диск C. Для этого надо определится с версией и скачать архив с названием  postgresql-x.x.x-binaries-no-installer.zip ее скачать отсюда.
Ок. Теперь надо инициализировать кластер. Для этого надо открыть консоль от пользователя postgres. Нажимаем Пуск->Выполнить и вводим
runas /user:postgres cmd
Появится окошко с запросом пароля пользователя postgres. Теперь собственно инициализация кластера. 
c:\pgsql\bin\initdb.exe -E win1251 -D c:\pg_data
Файлы базы данных будут хранится в папке c:\pg_data, включая и файлы настройки доступа. После успешной инициализации кластера предагается его запустить парой способов. Но в windows есть службы, которыми гораздо удобнее пользоваться чем скриптами запуска в автозагрузке.
Создаем службу. Для этого нужно запустить консоль от имени администратора. 
c:\pgsql\bin\pg_ctl.exe register -N "PostgreSQL" -U postgres -D с:\pg_data
Теперь Панель управления->Администрирование->Службы. В списке появилась новая служба PostgreSQL. В ее свойствах, во вкладке "Вход в систему" нужно ввести правильный пароль пользователя postgres и нажать Применить. Все, теперь службу можно запустить. 
Если предполагается подключение из локальной сети, то нужно изменить некоторые настройки. Во-первых надо открыть файл c:\pg_data\pg_hda.conf. В нем найти строку 
host    all         all         127.0.0.1/32          trust
и под ней добавить новую
host    all         all         192.168.1.1/24      trust
в которой написано, что подключаться могут компьютеры локальной сети с адресами 192.168.1.х. Далее, в файле c:\pg_data\postgresql.conf нужно отредактировать параметры listen_addresses и port. Должно получится так 
listen_addresses = '*'       
port = 5432              
Все, после перезагрузки сервера к нему можно будет подключится из локальной сети.
Теперь самое интересное. Импорт старой базы. Если импорт производился правильно, т.е. так:
c:\pgsql\bin\pg_dump -Fc mydb > db.dump
то экспорт особого труда не составит. Нужно создать базу данных с названием mydb. Это можно сделать из pgadmin'а. Все, теперь можно импортировать. 
c:\pgsql\bin\pg_restore -C -d mydb db.dump
  Вот и все.

воскресенье, 5 сентября 2010 г.

[upload][php]тонкости. Или то, о чем мало пишут.

как это делается описано во многих местах, например
http://www.phpclub.ru/detail/article/upload
но есть 3 момента, из-за которых будут проблемы.
1) не забыть в форму задать в виде
enctype="multipart/form-data" action="/upload.php" method="post">
важный момент выделен жирным.

2) при создании каталога для хранения файлов нужно дать ему разрешение на все т.е.
chmod 777 uploaddir
3) существует заблуждение, что владельцем каталога должен быть пользователь, от имени которого работает apache или php. Нет! Владельцем каталога должен быть именно тот пользователь, который владеет скриптом.

Далее)
Как хранить ссылки на файлы, так чтоб их можно было скачать?
Это конечно интересный вопрос. Казалось бы, что может быть проще, записали в базу имя и вперед. Но, опять это дурацкое но)) Все я не пробовал проверять, но у меня возникают сомнения по поводу русских названий и пробелов. А если вспомнить кодировки и то, что хостинг обычно крутится на BSD или Linux, а большенство пользователей сидит на винде... Вобщем, универсальным решением я, для себя, выбрал перевод имен файлов в транслит. Вот такой замечательной функцией:


  1. <?php
  2. public function encodeS($st)
  3.     {
  4.         $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_","abvgdeeziyklmnoprstufh'iei");
  5.         $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_","ABVGDEEZIYKLMNOPRSTUFH'IEI");
  6.         $st=strtr($st," ","_");
  7.     // Затем - "многосимвольные".
  8.  
  9.        $st=strtr($st,
  10.                     array(
  11.                         "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh",
  12.                         "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
  13.                         "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH",
  14.                         "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
  15.                         "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
  16.                         )
  17.              );
  18.     // Возвращаем результат.
  19.        return $st;
  20.     }
  21. ?>

пятница, 12 февраля 2010 г.

xdmcp или какие могут быть проблемы при настройке kdm

С kdm ситуация немного проще чем с gdm.
Чтоб тоже самое сделать с помощью kdm надо отредактировать 2 файла, это /etc/kde4/kdm/kdmrc и /etc/kde4/kdm/Xaccess. 
В kdmrc нужно найти [Xdmcp] заменить заменить в Enable=false на true, а в Xaccess раскоментировать
#*                  #any host can get a login window
эту строку. Иначе, если ее не раскоментировать, возможно будет выдавать ошибку XDMCP fatal error: Manager unwilling Host unwilling.

xdmcp или какие могут быть проблемы при настройке gdm

Долго (дня 2) пытался нормально настроить gdm для xdmcp в ubuntu 9.10.
Дальше проблемы:
1. Как всегда в убунту нет конфига.
2. При втором заходе на сервер появляется ошибка XDMCP fatal error: session declined maximum number of open sessions from your host reached, если идти стандартным путем настройки, как написано на многочисленных сайтах.

Решения:
1. Файл custom.conf почти пустой лежит в /usr/share/doc/gdm/examples. Его надо скопировать в /etc/gdm/
sudo cp /usr/share/doc/gdm/examples/custom.conf /etc/gdm/
и, естественно вписать настройки
[xdmcp]
Enable=true
MaxSessions=16
DisplaysPerHost=2
2. Вторая проблемма как раз и решается последней строкой конфига, а именно DisplaysPerHost=2. При использовании gdm, она должна обязательно присутствовать, иначе после первого сеанса gdm перестанет пускать с ошибкой означеной выше.

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

Буква И в MySQL

Проблема в том, что MySQL как-то странно выводит эту букву в UTF-8. Все остальные нормально, а эта как попало( Выход из ситуации такой:
В классе подключения к БД, после mysql_connect, нужно написать mysql_query("SET NAMES UTF8");. Минус в том, что если база уже заполнена, ее придется перезаписать.

вторник, 19 января 2010 г.

utf8 и Денвер

Как заставить денвер работать внутри сети как корпоративный web-сервер, да так чтоб понимал utf8?

Надо C:\WebServers\usr\local\apache\conf\httpd.conf закоментить строку: AddDefaultCharset windows-1251 и ребутнуть денвер.

Все. Utf8 сервер уже научился.

Дальше надо, чтоб его было видно в локальной сети. Это описано в FAQ к денверу поэтому скажу, что мне понравился способ с .htaccess который надо положить в z:\home\_название сайта_\, и в котором надо написать #dnwr_ip _ваш ip адрес_, и стучаться на него с другого компа.