2009-09-12

Как перенести SVN репозиторий с oDesk

Иногда встает задача переноса SVN репозитория с сервера на котором у вас нет ssh доступа. Возникнуть такая задача может у пользователей oDesk, Google Code, SourceForge и других площадок которые предоставляют SVN но не предоставляют ssh доступ.

Если ssh доступ есть то задача решается просто, например можно воспользоваться вот этими инструкциями. Однако что делать если ssh не доступен?

Решение нашел вот здесь. На помощь приходит утилита svnsync позволяющая синхронизировать два репозитория. Алгоритм получается следующий:

- создаем чистый репозиторий;
- синхронизируем его с удаленным при помощи svnsync;
- делаем дамп нового репозитория;
- заливаем дамп в новый репозиторий который и будет новым основным репозиторием.

Создаем временный репозиторий:

> svnadmin create temp_repo

Здесь и далее temp_repo - имя временного репозитория.

Создаем внутри директории hooks пустой исполняемый файл:

> echo '#!/bin/sh' > temp_repo/hooks/pre-revprop-change
> chmod +x temp_repo/hooks/pre-revprop-change

Теперь синхронизируем наши репозитории:

> svnsync init file://[full_path_to_repository]/temp_repo https://secure.odesk.com/svn/[odesk_s_reporsitory_name]
> svnsync sync file://[full_path_to_repository]/temp_repo

Дело сделано, теперь получаем дамп:

> svnadmin dump [full_path_to_repository]/temp_repo > repo_dump

Теперь в repo_dump мы имеем полный дамп удаленного репозитория который можно залить куда угодно.

Создадим новый репозиторий и зальем туда наш дамп:

> cd /path/to/new-repository-parent-directory
> svnadmin create repository-name
> svnadmin load repository-name < repository.dumpfile

Осталось переключить проект на новый репозиторий:

> svn switch --relocate oldurl newurl

 

Оставить комментарий

 
  2009-09-11

Как пережать видео для мобильника

Указанный пример тестировался под Линукс, насколько я знаю под Windows тоже есть версия ffmpeg, но ее я не проверял.

FFMpeg это универсальная штука позволяющая конвертировать видео и аудио практически как угодно, в нашем случае нужно преобразовать имеющийся видео файл в формат mp4 и уменьшить разрешение до 352x258

ffmpeg -i "Naruto Shippuuden - 125.mp4" -vcodec mpeg4 -s 640x360 "n125.mp4"

Разрешение 640x360 я выбрал исходя из размеров экрана Nokia 5800. Для других телефонов имеет смысл выбрать разрешение поменьше.
 

 

 

Оставить комментарий

 
  2009-09-05

Провайдер закрыл 25-й порт?

Не расстраивайтесь если провайдер закрыл 25-й порт и теперь не дает посылать вам почту через ваш любимый SMTP сервер. Как правило все хорошие SMTP серверы умеют посылать почту с использованием SSL авторизации, а это уже 465-й порт - его, как правило правайдеры не закрывают.

 

Оставить комментарий

 
  2009-08-28

Asus Aspite 4810 + Nokia 5800 +Beeline GPRS

> sudo sdptool search Dun
Inquiring ...
Searching for Dun on 00:24:03:DC:C7:F8 ...
Service Name: Dial-Up Networking
Service RecHandle: 0x10012
Service Class ID List:
  "Dialup Networking" (0x1103)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 2
Language Base Attr List:
  code_ISO639: 0x454e
  encoding:    0x6a
  base_offset: 0x100
Profile Descriptor List:
  "Dialup Networking" (0x1103)
    Version: 0x0100
Получили МАК адрес и номер канала.

теперь подключаем наш телефон:

> sudo rfcomm bind 0 00:24:03:DC:C7:F8 2

проверяем что телефон подключен:

> rfcomm

sudo rfcomm bind 0 00:24:03:DC:C7:F8 2

телефон подключен, теперь настраиваем интернет:

> sudo pppconfig

здесь нужно настроить соединение с GPRS beeline, после того как все сделано нужно немного подправить настройки соединения

> sudo gedit /etc/chatscripts/beeline

после ATZ добавляем

'' AT+CGDCONT=1,"IP","internet.beeline.ru"

теперь можно соединяться к интернет:

> sudo pon beeline

что бы посмотреть состояние соединения

> plog

чтобы разорвать интернет соединение:

> poff

чтобы разорвать соединение bluetooth соединение:

> sudo rfcomm release 0

 

Оставить комментарий

 
  2009-08-26

Как изменить кодировку по умолчанию

По умолчанию Апач в заголовки пишет кодировку в которой отдается текстовое содержимое, какая это будет кодировка, зависит от настроек самого Апача. Если нужно другая, скажем utf-8, то нужно добавить а .htaccess следующую строку:

AddDefaultCharset utf-8

 

Оставить комментарий

 
  2009-08-21

Закачака файлов AJAX

Нашел занимательный пример по закачке файлов посредством AJAX. Решение, оказывается, простое ну просто до безобразия - у формы с файлом ставится target с именем невидимого фрейма, за счет этого форма с файлом не перегружается а перегружается этот самый невидимый фрейм. Гениально!

 

Оставить комментарий

 
  2009-08-15

Как выключить встроенную звуковую карту в Linux

На моей машинке две звуковушки - приобрел дешевый Creative Sound Blaster когда оказалось что встроенную карту заставить работать с Скайпом можно только при помощи бубна, шамана да и то только по четным дням каждого шестого нечетного месяца года если сумма цифр не содержит цифры тринадцать...

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

Поискав по форумам решения которое мне понравилось бы я почему то не нашел, поэтому, решил что лучшим будет отключить устройство совсем.

Алгоритм следующий:

1. запускаем lsmod, ищем название модуля похожее на нашу встроенную звуковушку в моем случае это оказалось snd_hda_intel

2. добавляем в /etc/modprobe.d/blacklist.conf строчку

blacklist snd_hda_intel

3. перегружаемся

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

 

Оставить комментарий

 
  2009-07-24

Исправление latin1 в cp1251

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

Алгоритм решения получился следующий, получаем дамп базы данных в кодировке cp1251, для этого phpMyAdmin нужно заставить думать что он работает в latin1 и в этом режиме сделать дамп нашей базы данных. Для этогого в /libraries/select_lang.lib.php (у меня древний phpMyAdmin в новых может и не то нужно делать...) поменял

    'utf-8'        => 'utf8',

на

    'utf-8'        => 'latin1',

phpMyAdmin на главной странице показывает:

MySQL charset: cp1252 West European (latin1)

значит обман удался :)

После этого делаем дамп базы данных называем его например db_cp1251.sql

Открываем дамп и удаляем все где говориться про latin1 (типа DEFAULT CHARSET=latin1)

Забрасываем дамп обратно, но mysql клиенту говорим что файл в кодировке cp1251:

mysql --default-character-set=cp1251 --character-sets-dir="C:\Program Files\MySQL\MySQL Server 4.1\share\charsets" db < db_cp1251.sql

(--character-sets-dir нужен только в Windows)

Не забываем вернуть phpMyAdmin в исходное состояние и, вуаля, файл в правильной кодировке. Ура!.

 

Оставить комментарий

 
  2009-07-13

Автомонтирование раздела ntfs

Убунта вообще то по умолчанию делает это сама. Вернее делает Gnome но только при первом обращении. У меня же на ntfs разделе есть несколько виртуальных доменов и апачу такое обращение явно не нравится поэтому нужно чтобы раздел монтировался при старте системы.

1. находим имя устройства для монтирования - после того как диск подмонтирован запускаем

mount -l

увидим много строчек где есть что то вроде:

/dev/sdb1 on /media/disk type fuseblk (rw,nosuid,nodev,allow_other,blksize=4096) []

значит наше устройство /dev/sdb1

2. добавляем в /etc/fstab следующую строку:

/dev/sdb1       /media/diskc    ntfs-3g  defaults,locale=ru_RU.utf8  0 1

я специально в качестве точки монтирования указал /media/diskc а не /media/disk - здесь обнаружилась одна тонкость чтобы раздел был успешно подмонтирован папка должна существовать поэтому ее нужно создать.

3. создаем папку:

sudo mkdir /media/diskc/

4. перегружаемся:

sudo reboot

Если все сделано правильно то диск будет подмонтирован автоматически во время запуска.

 

Оставить комментарий

 
  2009-07-10

Как создать скриншот странички на стороне сервера

Встала задачка, сделать скриншет сайта на стороне сервера (Linux).

Обнаружил сразу несколько способов.

Первый способ это воспользоваться khtml2png - консольная утилита которая испольльзует khtml - движек на котором работают Safari и Crome. Утилита требует наличия иксов, чтобы запустить X сервер на сервере, можно воспользоваться Xvfb.

Еще один способ это установить на сервер firefox. При наличии Xvfb он отлично запускается.

Оба способа работают, однако khtml2png работает довольно грустно ибо не поддерживает флеш, firefox работает гораздо веселее, но пока никак не соображу как запустить его из командной строки на fullscreen.

 

Коментариев: 7