Sunday, December 12, 2010

const char * to LPCWSTR

Когда только начинал изучать WinAPI на VisualStudio 2010, меня постоянно мучила ошибка преобразования строк. А именно сообщение об ошибке
a value of type "const char *" cannot be assigned to an entity of type "LPCWSTR" 
Перечитал кучу форумов и перепробовал кучу способов обхода этой проблемы, пока случайно не зашел на VS2010 Tips & Triks, где объяснялась ситуация возникновения этой ошибки. А решается это очень просто
Project -> Properties -> Configuration Properties -> General
И в поле Character Set меняет параметр Use Unicode Character Set на Use Multi-Byte Character Set

Friday, December 10, 2010

Apache и мониторинг виртуальных хостов

1. Включаем модуль
$ sudo a2enmod status
$ apache2ctl graceful


2. Редактируем файл мониторинга /etc/apache2/mods-available/status.conf
ExtendedStatus On

SetHandler server-status
#Order deny,allow
#Deny from all
#Allow from localhost ip6-localhost


3. Бывает так, что при переходе на какой-нибудь сайт появляется ошибка "You don’t have permission to access /server-status on this server". Чтобы исправить эту ошибку нужно заменить строчку в файле /etc/hosts
127.0.0.1 localhost.localdomain localhost
на 127.0.0.1 localhost servername

MySQL и кодировка

Чтобы изменить кодировку по умолчанию для MySQL, необходимо выполнить следующие действия:

1. Открыть файл любыми доступными способами 
/etc/mysql/my.cnf

2. Добавить следующие строки
[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
collation-server=utf8_general_ci
init-connect='SET NAMES utf8'
[client]
default-character-set=utf8

3. Перезапустить mysql 
/etc/init.d/mysql restart

Wednesday, December 8, 2010

MySQL dump

1. Делаем бэкап базы
mysqldump -u[Логин] -p[пароль] [базаданных] > mybase.sql

2. Записываем бэкап в другой базе
mysql -u[Логин] -p[пароль] [базаданных] < mybase.sql

Wednesday, November 17, 2010

Backup SharePoint

Чтобы сделать бекап, выполняем команду
stsadm –o backup –url http://myurl -filename file.backup
Затем восстанавливаем
stsadm –o restore –url http://myurl -filename file.backup

Saturday, October 30, 2010

VBox и запуск без графического режима

У меня на виртуальной машине стоит web-server, svn-server, а также несколько самописных небольших серверов для тестов. В результате появилась идея запускать все это без запуска графической среды VBox'a. Такая возможность есть. Команда такова
VBoxHeadless.exe --startvm "freebsd"


Если вы хотите остановить запущенную машину, но необходимо
VBoxManage.exe controlvm "freebsd" poweroff

Monday, October 25, 2010

Самый простой декоратор

def print_value(func):
def wrapper(*args, **kwargs):
output = func(*args, **kwargs)
print output
return wrapper

@print_value
def return1():
return 1

@print_value
def return_tuple():
return (1, 2, 3)

Sunday, October 10, 2010

Lighttpd + Python

Собственно самый простой способ заставить python работать как cgi в lighttpd это выполнить 3 комманды

sudo ln -s /etc/lighttpd/conf-available/10-cgi.conf /etc/lighttpd/conf-enabled/

Добавить в файл /etc/lighttpd/lighttpd.conf строчку
cgi.assign = (“.py” => “/usr/bin/python”)

И перезапустить сервер
sudo /etc/init.d/lighttpd restart

Также, проверить работу можно вот таким простым скриптом

#!/usr/bin/env python

print "Content-type: text/html"
print
print "Hello world!"

Friday, October 8, 2010

CSRF token missing or incorrect

Начиная с версии Django 1.2 при работе с post-методами вылезает постоянно такая вот ошибка
CSRF token missing or incorrect

Это ошибка описана в документации, а также предложено несколько способов решения этой проблемы. Самый простой и рекомендуемый - это в теле формы написать такой блок
{% csrf_token %}

Tuesday, September 28, 2010

Проблема запуска MySQL

Если после установки mysql появляется ошибка 
/usr/local/libexec/mysqld: Incorrect information in file: './mysql/host.frm'


То необходимо выполнить следующие команды
#>chown -R mysql:mysql /var/db/mysql/
#>mysql_install_db

Tuesday, September 21, 2010

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

Лезем в файлик /etc/network/interfaces

И изменяем что-то вроде такого
iface eth0 inet static
address 192.168.1.13
netmask 255.255.255.0
getway 192.168.1.1

Если после этого вылезает ошибка во время пинга такая

Network is unreachable

то стоит просто выполнить команду
route add default gw 192.168.1.1

Saturday, September 18, 2010

Ubuntu. Отключение inet6

Все очень просто. Делается в одну команду (без древнего способа пересборки ядра).

Способ #1:
Открываем файл
nano /etc/sysctl.conf
Вставляем строчку
net.ipv6.conf.all.disable_ipv6 = 1

Способ #2:
echo blacklist ipv6 >> /etc/modprobe.d/blacklist

Wednesday, August 4, 2010

Git on Windows

1. Заходим на сайт http://code.google.com/p/msysgit/downloads/list
2. Скачиваем дистрибутив msysGit-netinstall-xxx.exe (Net installer if you want to hack on Git)
3. Устанавливаем, все что скачали (у меня по умолчанию C:\msysgit)
4. Идем в директорию, куда установили Git. 
5. Запускаем (для проверки - git-cmd.bat) msys.bat
6. Создадим пользователя
#git config --global user.name "MyUserName"
#git config --global user.email "my@email.ru"
7. У меня получилось создать только репы в своем разделе посредством команды 
#git init

Tuesday, July 13, 2010

Ubuntu. Установка .iso для Windows

Приведу пример для игры "Конструктор 2"

sudo mount -o loop -t iso9660 "Street Wars.iso" /cdrom
wine setup.exe

Thursday, June 3, 2010

Ubuntu + CompizConfig

#sudo aptitude install simple-ccsm compiz-fusion-plugins-extra compiz-fusion-plugins-main compiz-plugins emerald emerald-themes fusion-icon

Если необходимо, нужно прописать запуск в автозагрузку. Делается это так.
System -> Preferences -> Sessions и заходим во вкладку Startup Programs.
Добавляем следующие команды

emerald --replace
fusion-icon

Wednesday, May 26, 2010

Django и MySQL: вопросительные знаки

Появилась проблема с кодировкой. Разрешилась она просто. Необходимо было проверить настройки в проекте Django и MySQL.

В Django в файле settings.py настройки кодировки такие установил
TIME_ZONE = 'Europe/Moscow'
LANGUAGE_CODE = 'ru-RU'

Когда в MySQL были latin1. Проверить кодировку созданной БД можно следующей коммандой
>show create database mybd
А создать базу данных с нужной кодировкой (в моем случае utf8) можно коммандой
>create database mydb character set utf8 collate utf8_general_ci

Теперь просто синхронизируем модель с БД
#python manage.py syncdb
И (если не спросили) создаем суперпользователя
#python manage.py createsuperuser

Saturday, May 15, 2010

Chrome. РФ-домен

1. В адресной строке ввести about:config
2. Нажать "Я обещаю, что буду осторожен"
3. Правая кнопка мыши > Создать > Логическое
4. Ввести "network.IDN.whitelist.xn--p1ai" > OK
5. true > OK
6. Для примера вводим: http://президент.рф

Sunday, May 2, 2010

Ubuntu+Apache+VirtualHosts

1. Переместимся в нужную директорию
cd /etc/apache2/sites-available

2. Создадим файл с названием нашго сайта
sudo gedit mysite.com.conf

3. Напишем необходимый минимум для работы сайта

ServerName mysite.com
DocumentRoot /home/USER/mysite_dir

4. Поправим хосты
sudo gedit /etc/hosts
127.0.0.1 mysite.com

5.Подключим сайт
sudo a2ensite mysite.com.conf

6. Перезапустим apache2
sudo /etc/init.d/apache2 reload

* чтобы отключить сайт используется команда a2dissite

Friday, April 30, 2010

Ubuntu Apache+Python+MySQL

Тут все очень просто. Даже описывать ничего не буду. Просто напишу команды
sudo aptitude install python-mysqldb

Ubuntu 10.04 Apache+mod-wsgi

Появилось немного времени, чтобы наконец установить модуль mod-wsgi
Все довольно просто (особенно в сравнении с установкой на Windows)
1. Итак. Классика. Обновляем репы
sudo aptitude update
2. Далее (apache2 уже установлен!) установим сам модуль
sudo aptitude install libapache2-mod-wsgi
2*. Вообще нужно этот модуль еще и сделать активным командой
sudo a2enmod mod-wsgi
но у меня этот модуль не находится и при рестарте индейца и до рестарта.. не знаю в чем проблема, но вообще модуль установлен уже и активен =\
3. Немного шаманства с настройками. Откроем конфиг
sudo gedit /etc/apache2/sites-available/default
И начиная с 10 строки внесем вот такие изменения
Options Indexes FollowSymLinks MultiViews ExecCGI
AddHandler cgi-script .cgi
AddHandler wsgi-script .wsgi
4. Теперь поправим дефолтные страницы запуска по умолчанию (добавим туда еще и index.wsgi). Откровем конфиг
sudo gedit /etc/apache2/mods-enabled/dir.conf
И внесем еще один параметр "index.wsgi"
5. Все! Рестартанем индейца и вперед за работу
sudo /etc/init.d/apache2 restart



Wednesday, March 24, 2010

JavaScript: array like hash

Good (assuming Object has not been overloaded or extended)

var array = new Object();
array[
'something'] = ‘yay’;
array[
'somethingelse'] = ‘more’;
for ( keyVar in array ) { alert(array[keyVar]); }

Sunday, March 7, 2010

VirtualBox windows-rdp

Необходимость использования rdp-соединения встала из-за того, что использую нетбук Samsung n310 и можно легко сделать вывод, что использовать виртуальную машину "как есть" крайне неудобно из-за монитора.
В результате сделал так
1. В VBox'е в разделе Дисплей устанавливаем функцию удаленного доступа (также автоматически у нас появится номер порта)
2. В cmd.exe пишем код
VBoxHeadless.exe -s mashinename -p 3389
3. Подключаемся с помощью удаленного стола как localhost:3389

Saturday, February 13, 2010

Aptana (with PyDev) and Subversion

Руководство (а точнее личные потуги) по установке SVN основаны на использовании Aptana с установленным модулем PyDev и работой с Django. Итак начнем.
1. Войдите во вкладку My Studio в Aptana
2. Выберите Install Plugins
3. Далее Subversion Client Adapter
4. Отмечаем все необходимое нам для работы
5. Ввиду того, что у меня нет необходимости (да и не очень удобно) хранить проекты на своем компе - я зарегестировался на бесплатном хостинге subversion http://mysvn.ru. Поэтому я буду отталкиваться именно от этого адреса ниже.
6. Создаем репозиторий
7. New -> Project -> Project from svn

Thursday, February 11, 2010

Django и русские символы

Давненько появилась такая проблема, что не могу вписать в свои скрипты русские символы. На все мои попытки вписать кириллицу дебагер выдает ошибку
Non-ASCII character '\\xd1' in file ...
После недолгих мучений я нашел один хороший способ бороться с этой проблемой. Необходимо проделать следующие шаги:
1. Сохранять все файлы в кодировке utf8
2. Прописать в начале файла код
# -*- coding: utf-8 -*_
3. Строки с русскими символами записывать вот так
string = u'строка'