четверг, 24 февраля 2011 г.

iPhone and Ubuntu 10.4

sudo add-apt-repository ppa:pmcenery/ppa
sudo aptitude update
sudo aptitude install libimobiledevice libimobiledevice-utils

воскресенье, 19 декабря 2010 г.

Update nokia from internet (without PC suite)

HI ALL FOR UPDATING TO LATEST VERSION DO IT

1. Key *#0000# into your phone’s home screen.
2. Select Options > Check for updates.
3. Follow the on-screen prompts until your update is complete!

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

Garmin подключение и использование в Linux

Garmin подключение и использование в Linux
==========================================
http://citkit.ru/articles/1001/

Если коротко, то нужно поставить в Wine MapSource,
подключить устройство, выполнить "линковку" порта:

sudo modprobe garmin_gps
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1

Посте чего запускать Map Source - она увидет устройство.

пятница, 19 ноября 2010 г.

Смена кодировки для mp3 файлов c cp1251 на utf8

mp3 encode
==========
sudo apt-get install python-mutagen
find -iname '*.mp3' -print0 | xargs -0 mid3iconv -eCP1251 --remove-v1

пятница, 3 сентября 2010 г.

Установка сканера Epson Perfection V10 в Ubuntu

Установка сканера Epson Perfection V10 в Ubuntu
по материалам
http://forum.ubuntu.ru/index.php?topic=36843.0
http://www.ussr.kiev.ua/viewtopic.php?f=4&t=28

нужно поставить три deb пакета, после чего Приложения\Графика\Сканировать

Драфвера берем здесь
http://www.avasys.jp/

Установил
1. dpkg --install iscan-data_$ver-$rel_all.deb

2. dpkg --install iscan_$ver-$rel_$arch.deb
DEB 32bit package [libltdl7] (for Ubuntu 8.10 or later)
iscan_2.25.0-1.ltdl7_i386.deb 349 476 bytes
iscan-plugin-gt-s600_2.1.0-3_i386.deb

четверг, 6 мая 2010 г.

mp3 + картинка на youtube (mp3 to youtube)

Залить mp3 на youtube (mp3 to youtube)
--
http://twistedminds.ru/blog/2010/02/mp3-to-youtube/
--
ffmpeg -loop_input -r 1 -f image2 -i d:\source.png -r 1 -t 300 -i d:\source.mp3 -acodec copy d:\out.avi

суббота, 1 мая 2010 г.

Веб дизайн - Нильсон, Цитаты

Эта книга объясняет то, что
известно о свойствах простых в использовании сай-
тов. Вкратце можно сказать так: получите удо-
вольствие от простоты, сфокусируйтесь на целях
пользователей, а не на ярком дизайне.

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

пятница, 30 апреля 2010 г.

Тестирование web сайтов

http://browsershots.org/ - Онлайн сервис, делает скриншоты сайта в разных версиях браузерах

http://www.my-debugbar.com/wiki/IETester/HomePage объединяет в себе движоки разных версий IE

http://finalbuilds.edskes.net/iecollection.htm коллекция IE (ставится скопом на одну машину)

http://litmusapp.com/pricing похож на browsershots, но за деньги

http://crossbrowsertesting.com/pricing

пятница, 5 марта 2010 г.

вторник, 2 февраля 2010 г.

Настройка mts internet в Nokia 5800

Если не работает автоматическая настройка: http://www.mts.ru/settings/
Вы можете заказать автоматические настройки WAP и MMS:
* позвонив с мобильного телефона на номер 0876*;
* отправив пустое сообщение SMS на номер 1234*.

То нужно удалить созданные internet.mts и создать ручками:

Параметры/Связь/Пункты назначения/Интернет

Функции/Новая точка доступа/
Автоматически искать точки доступа? - отвечаем Нет
Выберете тчк доступа: выбираем "Пакетные данные"

Имя точки доступа: internet.mts.ru
Точка создалась, доизменим её параметры:
Имя пользователя: mts
Запрос пароля: нет
Пароль: mts
Использовать точку доступа: после подтверждения


После этого в программах требующих интернет при подключении выбирать: internet.mts.ru

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

Переход Ubuntu 9.10 Karmic Pulseaudio Alsa и другие "особенности"

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

=== Переезд на Ubuntu 9.10 ===
(x86 или 64 будет уточнятся по ходу дела)

===
=== Освобождения винта от данных ===
===

Решил слить все нужные данные на второй винт и сделать "чистую" установку.

Для гарантированного сливания 100+G пробовал использовать sbackup, опыт печальный,
когда архив получился 70G, и я его в целях проверки стал распаковывать на третий винт,
после 30 минут распаковки - выдал ошибку "неожиданный конец архива".

Итог: для переноса данный использовать rsync.
$ rsync --progress -luogthvr --delete-after from to

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

===
=== Выбор 64 или 32 ===
===
Сначала я выбрал 64, про№;%?*(; со звуком, я решил поставить 32, но выяснилось что тут теже яйца.
Поэтому победа и тесты были проведены на 32, а на чистую я буду ставить 64 (пишу этот документ как
финишный 32 и как помятку по которой буду устанавливать 64).

===
=== Устанавливаем систему, избавляемся от Pulse, выбираем Alsa ===
===
Установить систему с LiveCD, применить все обновления.
Если коротко то проблема звука вылезла с Skype. Микрофон работал очень, тихо практически не слышно.
Также "тихо слышно" работала стандартная "Звукозапись".
Еще одни грабли вылезли на внешней звуковой карте, просто в 9.10 нет аналога gnome-sound-properties из 8,
и выбрать по человечески куда играть музыку в штатные колонки или стационартные я не могу.

Просто писец... Шаг назад в человечности.

===
=== Избавляемся от Pulse, выбираем Alsa ===
===
По материалам:
[1] Как избавиться от pulseaudio в Karmic (Ubuntu 9.10)
http://forum.ubuntu.ru/index.php?topic=69589.0
Спасибо Psy[H[] и Демагог, за их дельные посты.

[2] Re: Ubuntu's switch to pulseaudio broke accessibility for the blind
http://n2.nabble.com/Re-Ubuntu-s-switch-to-pulseaudio-broke-accessibility-for-the-blind-td3886061.html

Итак по порядку, что делал чтобы заработало у меня:
== из источника [1] ==
1. Собсвтенно урбать pulseaudio не сложно:
$ sudo apt-get remove pulseaudio gstreamer0.10-pulseaudio
это потянет соответсвтующие пакеты, ничего жизненно важного.
$ killall pulseaudio

2. NEW - не удалять потому что подменим gnome-volume-control Подтираем остатки мусора
$ gnome-session-properties
ищем там gnome-volume-control-applet и выключаем/удаляем. Он бесполезен, так как ничего не умеет кроме как в фоне ругаться на отсутствие pulseaudio.
еще прибиваем его в текущей сессии, чтобы не ныл:
$ killall gnome-volume-control-applet

3. Идем в
$ gstreamer-properties
известный в народе как "выбор мультимедийной системы" cтавим везде где можно ALSA,
в [1] 3тим пунктом указано еще одно не обязательное телодвижение, у меня заработало без него.

4. теперь нам нужен микшер. Выбор тут есть. И консольный alsamixer и кучка гуев к нему. Но самостоятельно парящие гуи в основном кривые. Поэтому автор скромно советует
$ sudo apt-get install xfce4-mixer
микшер качественный, без глюков и ничего особо серьезного по зависимостям за собой не тянет. Ставим, размещаем лончер команды xfce4-mixer на панели по вкусу.
При первом запуске микшер будет пуст - необходимо выбрать карту и видимые каналы.

5. Самое коварное - управление с клавиатуры
Обойтись можно тремя командами:
amixer sset Master 5+
amixer sset Master 5-
amixer sset Master toggle
соответственно увеличить, уменьшить, включить/выключить.
Данные команды можно повесить на на исполнение нужными кнопками через стандартную гномовскую утилиту,
"Добавить" новую команду.
$ gnome-keybinding-properties
также можно повесить как лончеры на панель.

6. последний шртих:
$ sudo apt-get install alsa-oss
чтобы приложения, написанные под oss тоже могли выводить звук через ALSA.

После этих шагов остались не приятные последствия: gnome-volume-control перестал работать (при запуске Система\Параметры\Звук, получаем "Ожидание ответа звуковой подсистемы").
И нет возможности менять звуковуй карту (слушать через внешнею USB TerraTec Aureon 5.1), что в предыдущей версии делалось через gnome-sound-properties.

Выход:
1) заменить gnome-volume-control (Ubuntu 9.10 Karmic) на его же из jaunty (из соответсвующей 32bit или 64bit).
2) добавить отсутвующий gnome-sound-properties.
Для обоих случаев - качаем пакеты содержащие их из предыдущей Ubuntu, разархивируем, берем нужные файлы, ложим их на нужные места к себе.

Установим 1):
Скачаем нужное (i386 или amd64 в зависимости от вашей платформы):
gnome-volume-control лежит в пакете gnome-media (/usr/bin/gnome-volume-control)
http://packages.ubuntu.com/jaunty/amd64/gnome-media/download
http://packages.ubuntu.com/jaunty/i386/gnome-media/download

$ sudo cp /usr/bin/gnome-volume-control /usr/bin/gnome-volume-control2
заменим на взятый из предыдущей версии
$ cd old_gnome-media_path/usr/bin/
$ sudo cp gnome-volume-control /usr/bin/
до кучи заменим и gnome-sound-recorder ("Звукозапись"), им мы сможем проверить правильную работу микрофона
$ sudo cp /usr/bin/gnome-sound-recorder /usr/bin/gnome-sound-recorder2
$ cd old_gnome-media_path/usr/bin/
$ sudo cp gnome-sound-recorder /usr/bin/

Установим 2):
Тут кроме копирования файла нужно скопировать sound-properties.glade, возмем его с ветки форума
http://www.4front-tech.com/forum/viewtopic.php?f=3&t=3324
http://www.4front-tech.com/forum/download/file.php?id=1
в этом же архиве лежит исполняемый файл и можно взять его
(не тянуть из пакетов, хотя если ты параноик.. то официальные ссылки ниже)
gnome-sound-properties лежит в пакете gnome-control-center (/usr/bin/gnome-sound-properties)
http://packages.ubuntu.com/jaunty/amd64/gnome-control-center/download
http://packages.ubuntu.com/jaunty/i386/gnome-control-center/download
копируем
$ sudo cp gnome-sound-properties /usr/bin/
$ sudo mkdir /usr/share/gnome-control-center/glade/
$ sudo cp sound-properties.glade /usr/share/gnome-control-center/glade/


=== Все теперь должно работать, удобно ===
Для быстрого переключения звуковой карты выведем команды на панель
gnome-sound-properties


=== Проверим скайпом ===
установим
для 32bit можно воспользоватся репозиторием
$ sudo gedit /etc/apt/sources.list
add line:
deb http://download.skype.com/linux/repos/debian/ stable non-free
$ sudo apt-get update
$ sudo apt-get install skype

для 64bit ставим из пакета
$ wget http://www.skype.com/go/getskype-linux-beta-ubuntu-64
и устанавливаем.
skype-ubuntu-intrepid_2.1.0.47-1_amd64.deb


В skype в настройке, убрать галку с "Устройства\Позволить skype автоматически подстраивать громкость".
Проверить что микрофон не выключен, что для input истойства volume не на нуле.
Сделать тестовый звонок, должно все работать.


=== Дальше идут обычные шаги, по установке софта которым я пользуюсь ===


# medibuntu
sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update


sudo apt-get install nautilus-gksu nautilus-open-terminal

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

Rsync - способ синхронизации файлов

http://blog.jphoude.qc.ca/2007/12/01/simple-incremental-backup-rsync-ssh/
http://www.webnext.ru/blog/2007/07/02/rsync-howto.html

Разберём на примере:

rsync -e ssh --progress -lzuogthvr --compress-level=9 \
--delete-after root@:/home/ /home/

или

rsync -e ssh --progress -lzuogthvr --compress-level=9 \
--delete-after /home/ root@:/home/

зависит от того, в какую сторону синхронизируем файлы

Обратите внимание на последний слеш, так как он имеет значение для rsync. Если на конце исходной директории стоит «/», то это означает копирование содержимого директории; отсутствие слеша означает копирование директории и ее содержимого.

Ключи:

* e — заменяет протокол с rsh на ssh

* progress — вывод хода процесса работы на терминал
* l — пересоздание symlinks, это значит, что символические ссылки будут так же переноситься

* z — использовать сжатие
* u — update. Обновление, он будет пропускать файлы которые новей, чем на удалённом сервере

* o — установить владельца конечного файла таким же, как и у исходного
* g — установить группу конечного файла таким же, как и у исходного

* t — передача времени модификации и его обновление на удаленной системе. Этот ключ должен быть установлен для точной синхронизации
* h — вывод информации на терминал в удобном для чтения (human-readable) виде

* v — verbose. Вывод сообщений в терминал.
* r — рекурсивный режим

* n — отладочный режим
* compress-level — уровень сжатия

пятница, 18 декабря 2009 г.

Ссылки на сравнение Ruby on Rails и Django

http://www.magpiebrain.com/2005/08/14/a-comparison-of-django-with-rails/

http://blogs.ubc.ca/scottmcmillan/2009/02/26/django-vs-ruby-on-rails/


Интервью: новый веб-сервис "Яндекса" построен на языке Python и фреймворке Django
http://soft.compulenta.ru/346012/

понедельник, 7 декабря 2009 г.

nginx vps and related

http://www.youtube.com/watch?v=DB-ikoCnjvk

понедельник, 26 октября 2009 г.

Upload files in Django

http://livedev.org/2009/01/02/django-filefield-upload-to
http://www.nitinh.com/2009/02/django-example-filefield-and-imagefield/

Django amazon s3 storage

From: http://code.welldev.org/django-storages/wiki/Home
From: http://www.sourceguru.net/177/

Code:

from django.conf import settings
import S3

from django.core.files.storage import Storage

class S3Error(Exception):
"Misc. S3 Service Error"
pass

class S3Storage(Storage):
options = None

def __init__(self, options=None):
if not options:
options = settings.S3_SETTINGS
self.options = options
self.perm_tuple = (
'private',
'public-read',
'public-read-write',
'authenticated-read'
)
if self.options['default_perm'] not in self.perm_tuple:
self.options['default_perm'] = 'private'

self.connect()

def connect(self):
self.conn = S3.AWSAuthConnection(self.options['aws_key'], self.options['aws_secret_key'])

res = self.conn.check_bucket_exists(self.options['bucket'])

if res.status != 200:
res = self.conn.create_bucket(self.options['bucket'])
if res.http_response.status != 200:
raise S3Error, 'Unable to create bucket %s' % (self.options['bucket'])

return True

def exists(self, filename):
contents = self.conn.list_bucket(self.options['bucket'])
if filename in [f.key for f in contents.entries]:
return True
else:
return False

def size(self, filename):
contents = self.conn.list_bucket(self.options['bucket'])
for f in contents.entries:
if f.name == filename:
return f.size

return False

def url(self, filename):
server = self.options['bucket']
if not self.options['vanity_url']:
server += '.s3.amazonaws.com'
return 'http://' + server + '/' + filename


def save(self, filename, content):
try:
data = open(content.temporary_file_path()).read()
except IOError, err:
raise S3Error, 'Unable to read %s: %s' % (filename, err.strerror)

if not content.content_type:
content_type = mimetypes.guess_type(filename)[0]
if content_type is None:
content_type = 'text/plain'
else:
content_type = content.content_type

perm = self.options['default_perm']

res = self.conn.put(
self.options['bucket'],
filename,
S3.S3Object(data),
{
'x-amz-acl': perm,
'Content-Type': content_type
}
)

if res.http_response.status != 200:
raise S3Error, 'Unable to upload file %s: Error code %s: %s' % (filename, self.options['bucket'], res.body)


content.filename = filename
content.url = self.url(filename)

return filename

def delete(self, filename):
res = self.conn.delete(self.options['bucket'], filename)
if res.http_response.status != 204:
pass
#raise S3Error, 'Unable to delete file %s' % (filename)

return (res.http_response.status == 204)

def path(self, filename):
raise NotImplementedError

def open(self, filename, mode):
from urllib import urlopen
return urlopen(self.url(filename))

def get_available_name(self, filename):
import os
basefilename = os.path.splitext(filename)
i = 1
while self.exists(filename):
filename = '%s-%d%s' % (basefilename[0], i, basefilename[1])

return filename

пятница, 23 октября 2009 г.

Подборка ссылок на css стили/layout'ы

Layout's

http://matthewjamestaylor.com/blog/ultimate-3-column-holy-grail-pixels.htm

понедельник, 19 октября 2009 г.

Подбор доменного имени

http://www.vashdomen.ru/?rid=1847

Хорошее доменное имя:

1. Отличается краткостью. Лучше, если количество символов в имени Вашего домена не превышает 5, например, www.artus.ru. Длинные названия наподобие http://www.mtu-net.ru/korona/html.htm хуже запоминаются, их труднее набирать в строке броузера, а пользователи, как известно, чаще всего идут по пути наименьшего сопротивления.
2. Однозначно пишется. *** Доменные имена набираются латиницей, а ведь большой процент пользователей не знаком с английским языком и не может знать правил спеллинга. Значит, слово insurance (страхование) кто-то напишет как inshurans, кто-то – как enshoorance, да мало ли есть вариантов написания. Что уж говорить о транслитерации русских слов! Если Вы занимаетесь разведением кур, а имя Вашего домена www.kuriza.ru, будьте готовы, что искать Ваш сайт будут и на www.curitza.ru, и на www.kuritsa.ru, и на www.cooriza.ru. Плюс к тому, не надо забывать, что многие просто не знают, как пишется то или иное слово, поэтому «словарные слова» не стоит делать частью доменного имени.
3. Воспринимается на слух. Представьте себе муки Ваших сотрудников, уставших от переспрашиваний собеседника «как-как?» и вынужденных в телефонном разговоре диктовать адрес сайта по буквам. Не стоит регистрировать домен “www.onomatopoeia.ru”, если можно каким-то образом этого избежать, заменив слово на более привычное среднестатистическому уху.
4. Связано со сферой деятельности компании. Хорошо, если это название Вашей компании или бренда (www.danone.ru, www.danissimo.ru ). Можно также использовать общие для отрасли слова, как, например, слово «мебель» www.mebel.ru – домен, принадлежащий компании “Mr. Doors”.
5. Вызывает некие ассоциации, хорошо запоминается. Здесь важно не перестараться. Быть чересчур оригинальным не стоит, потому что скорее всего в думающей о другом голове пользователя останется нечто привычное, что он «где-то уже слышал».

понедельник, 5 октября 2009 г.

nice designs

http://thisweekindjango.com/twid/episode/32/this-week-in-django-32/


http://www.truviso.com/

Django geo

DjangoCon 2008: GeoDjango: http://www.youtube.com/watch?v=zOaimbSe6n8