Wednesday, September 30, 2009
Sunday, September 6, 2009
Customs?
Забавно. Чтобы послать международную посылку в США, Канаду, Францию, Великобританию, Ирландию, Италию - нужно приложить 2 накладных. В Украину, Казахстан -- 3. В Таджикистан, Кыргызстан, Узбекистан, и подобные -- 4.
Занимательная арифметика.
Занимательная арифметика.
Tuesday, May 5, 2009
Как настроить поддержку Билайн MMS на Android
Отправка MMS на андроиде HTC G1 с моего номера Beeline не работала, пока я не догадался сделать так, как делают на Водафоне.
Делаем две APN, одна для GPRS, вторая для MMS. Это делается в меню Settings > Wireless controls > Mobile networks > Access Point Names:
Первая APN:
Name: Beeline
APN: internet.beeline.ru
MCC: 250
MNC: 99
APN type: default
Остальные параметры не устанаваливать
(MCC и MNC должны подцепиться автоматически)
Вторая APN:
Name: BeeMMS
APN: mms.beeline.ru
User ID: beeline
Password: beeline
MMSC: http://mms/
MMS Proxy: 192.168.94.23
MMS Port: 8080
MCC: 250
MNC: 99
APN type: mms
После этого телефон перезагрузить (Airplane mode не достаточно).
Делаем две APN, одна для GPRS, вторая для MMS. Это делается в меню Settings > Wireless controls > Mobile networks > Access Point Names:
Первая APN:
Name: Beeline
APN: internet.beeline.ru
MCC: 250
MNC: 99
APN type: default
Остальные параметры не устанаваливать
(MCC и MNC должны подцепиться автоматически)
Вторая APN:
Name: BeeMMS
APN: mms.beeline.ru
User ID: beeline
Password: beeline
MMSC: http://mms/
MMS Proxy: 192.168.94.23
MMS Port: 8080
MCC: 250
MNC: 99
APN type: mms
После этого телефон перезагрузить (Airplane mode не достаточно).
Monday, May 4, 2009
Сборка браузера Chromium на Athlon XP
На моём компьютере с процессором Athlon XP 1600+ не запускается bleeding edge браузер Chromium, потому что бинарная сборка оптимизирована под Pentium4 и SSE2. SSE2 мой Атлон не поддерживает, вестимо.
$ chromium-browser
[28898:28898:32389465322:ERROR:/build/buildd/chromium-browser-2.0.178.0~svn20090430r14953/build-tree/src/chrome/common/temp_scaffolding_stubs.cc(132)] Not implemented reached in static bool FirstRun::IsChromeFirstRun()
Illegal instruction
$
Как в Ubuntu перекомпилировать Chromium под Athlon XP и прочие не-SSE2 процессоры? Можно либо последовать совету разработчиков и собрать его просто из исходников, либо пересобрать сам пакет по-дебиановски вот так:
1. Точно так же, как ночные бинарники, скачиваем пакет свежего исходного кода:
$ apt-get source chromium-browser
2. Скачиваем и устанавливаем зависимости:
$ sudo apt-get build-dep chromium-browser
3. В текущем каталоге появится исходный код (метров триста) и папка chromium-browser-3.0* c правилами сборки и пакетом того же самого исходного кода chromium-browser-2.0.178.0~svn20090502r15142-source.tar.bz2.
4. Однако, в файле build-tree/src/build/common.gypi прописаны те самые параметры оптимизации под P4 и SSE2 для профиля Debug (для Release их нет):
'cflags': [Мы можем либо заменить их, например, на
'-m32',
'-pthread',
'-march=pentium4',
'-fno-exceptions',
'-mfpmath=sse',
'-msse2',
'-Wall',
'cflags': [Для этого пишем патч:
'-m32',
'-pthread',
'-mtune=athlon-xp',
'-fno-exceptions',
'-mfpmath=sse',
'-msse',
'-Wall',
Index: src/build/common.gypi
===================================================================
--- src.orig/build/common.gypi 2009-05-29 19:01:23.000000000 +0200
+++ src/build/common.gypi 2009-05-30 19:02:27.000000000 +0200
@@ -285,7 +285,7 @@
# Some utility binaries need to be build with the host's native
# config (i.e. no 32-bit override).
'Tool': {
- 'cflags!': ['-m32', '-march=pentium4', '-msse2', '-mfpmath=sse'],
+ 'cflags!': ['-m32', '-mtune=athlon-xp', '-msse', '-mfpmath=sse'],
'ldflags!': ['-m32'],
'cflags': [ '-O2' ],
},
@@ -343,8 +343,8 @@
'conditions': [
['branding=="Chromium"', {
'cflags': [
- '-march=pentium4',
- '-msse2',
+ '-mtune=athlon-xp',
+ '-msse',
'-mfpmath=sse',
],
}],
и кладем его в файл chromium-browser-3.0*/debian/patches/drop_sse2.patch
5. Теперь этот пакет можно собрать, как обычно,
$ debuild -uc -us
7. Всё. На моём несчастном Athlon XP 1600+ сборка пакета занимает 6 часов, зато браузер
потом работает.
Update: Быстрый какой, как настоящий! Супер! Жаль только, что рамка окна видна и настройки пока не все можно менять. Ну и ещё много багов наверняка найдётся.
$ debuild -uc -us
7. Всё. На моём несчастном Athlon XP 1600+ сборка пакета занимает 6 часов, зато браузер
потом работает.
Update: Быстрый какой, как настоящий! Супер! Жаль только, что рамка окна видна и настройки пока не все можно менять. Ну и ещё много багов наверняка найдётся.
Thursday, April 23, 2009
Простой I/O-планировщик для виртуальных машин
Мэтти с prefetch.net обратил внимание на интересную мысль: на виртуальных машинах нужно использовать планировщик Noop, который формирует самую простую очередь запросов, а не всякие там изощренные CFQ и Anticipatory.
Идея в том, что запросы со всех виртуальных машин всё равно поступают к хост-машине, которая лучше знает, как их сортировать. Лишняя сортировка запросов самой гостевой машиной только снизит производительность, потому что гостевая всё равно не знает, чем там заняты остальные виртуальные машины, и просто зря напрягается.
Итого: при установке виртуального сервера на хост-машине ставим CFQ или Anticipatory/Deadline, а на виртуалках -- Noop.
Friday, April 17, 2009
Thursday, February 12, 2009
Три ресурса практических советов по Debian/Ubuntu
Ubuntu кунг-фу - http://www.ubuntukungfu.org/
Ubuntu tips - http://www.ubuntutips.net/
101 Linux Hacks book - http://www.thegeekstuff.com/2009/02/linux-101-hacks-download-free-ebook/
Ubuntu tips - http://www.ubuntutips.net/
101 Linux Hacks book - http://www.thegeekstuff.com/2009/02/linux-101-hacks-download-free-ebook/
Wednesday, February 4, 2009
Как послать баг-репорт во freedesktop.org
Мне захотелось добавить поддержку своего плеера в hal, чтобы он опознавался как плеер, а не как простое usb-хранилище. Для этого надо исправить файл 10-usb-music-players.fdi в /usr/share/hal/fdi/information/10freedesktop/.
Вот, например, поддержка плееров Samsung:
Чтобы это изменение попало в Linux community, надо послать патч разработчикам модуля hal-info из freedesktop.org. Разработчики freedesktop.org ценят своё время и принимают только патчи, присланные по отношению к их текущему git-репозиторию.
Устанавливаем git (apt-get install git) и cинхронизируемся с анонимным репозиторием -- моя локальная копия будет в ~/src/freedesktop.org.
Git скачивает копию модуля hal-info. Вносим изменения в файл src/freedesktop.org/hal-info/fdi/information/10freedesktop/10-usb-music-players.fdi, просим git сделать патч.
Вот этот патч уже можно послать разработчикам.
Идём на bugs.freedesktop.org, регистриуемся в багзилле и создаем новый баг. В новом баге все поля заполняются очевидно.
В описании бага пишем, что мы просим разработчиков включить в базу данных hal новый музыкальный usb плеер. Чтобы доказать, что мы всё правильно внесли в fdi-файл, копируем в баг-репорт строчки вывода lshal и lsusb при подключенном плеере.
Тут копируем весь блок информации про плеер.
И наконец, загружаем наш патч. Поскольку патч в формате git, разработчикам очень просто интегрировать его в репозиторий.
Точно так же можно написать и послать патч к любому другому компоненту freedesktop.org.
Вот, например, поддержка плееров Samsung:
<!-- Samsung YP-MT6V, YP-F1,YP-U1, YP-U2Z, YP-U4 -->
<match key="@storage.originating_device:usb.product_id" int_outof="0x5026;0x502b;0x503b;0x5050;0x5092">
<addset key="portable_audio_player.access_method.protocols" type="strlist">storage</addset>
<append key="portable_audio_player.output_formats" type="strlist">audio/x-ms-wma</append>
<append key="portable_audio_player.output_formats" type="strlist">application/ogg</append>
<append key="portable_audio_player.output_formats" type="strlist">audio/x-wav</append>
<append key="portable_audio_player.input_formats" type="strlist">audio/x-wav</append>
</match>
Чтобы это изменение попало в Linux community, надо послать патч разработчикам модуля hal-info из freedesktop.org. Разработчики freedesktop.org ценят своё время и принимают только патчи, присланные по отношению к их текущему git-репозиторию.
Устанавливаем git (apt-get install git) и cинхронизируемся с анонимным репозиторием -- моя локальная копия будет в ~/src/freedesktop.org.
$ cd src/freedesktop.org
$ git clone git://anongit.freedesktop.org/hal-info
Git скачивает копию модуля hal-info. Вносим изменения в файл src/freedesktop.org/hal-info/fdi/information/10freedesktop/10-usb-music-players.fdi, просим git сделать патч.
$ git diff ./10-usb-music-players.fdi
diff --git a/fdi/information/10freedesktop/10-usb-music-players.fdi b/fdi/information/10freedesktop/10-usb-music-players.fdi
index 29f8234..a11aa87 100644
--- a/fdi/information/10freedesktop/10-usb-music-players.fdi
+++ b/fdi/information/10freedesktop/10-usb-music-players.fdi
@@ -228,8 +228,8 @@
<append key="portable_audio_player.output_formats" type="strlist">application/ogg</append>
<append key="portable_audio_player.input_formats" type="strlist">audio/mpeg</append>
</match>
- <!-- Samsung YP-MT6V, YP-F1,YP-U1, YP-U2Z -->
- <match key="@storage.originating_device:usb.product_id" int_outof="0x5026;0x502b;0x503b;0x5050">
+ <!-- Samsung YP-MT6V, YP-F1,YP-U1, YP-U2Z, YP-U4 -->
+ <match key="@storage.originating_device:usb.product_id" int_outof="0x5026;0x502b;0x503b;0x5050;0x5092">
<addset key="portable_audio_player.access_method.protocols" type="strlist">storage</addset>
<append key="portable_audio_player.output_formats" type="strlist">audio/x-ms-wma</append>
<append key="portable_audio_player.output_formats" type="strlist">application/ogg</append>
Вот этот патч уже можно послать разработчикам.
Идём на bugs.freedesktop.org, регистриуемся в багзилле и создаем новый баг. В новом баге все поля заполняются очевидно.
Заголовок: Add new usb music player Samsung U4 to the hal db,
product: hal,
component: hal-info,
Hardware: other
OS verson: all (потому что freedesktop кросс-платформенный).
Priority: lowest
Severity:trivial
В описании бага пишем, что мы просим разработчиков включить в базу данных hal новый музыкальный usb плеер. Чтобы доказать, что мы всё правильно внесли в fdi-файл, копируем в баг-репорт строчки вывода lshal и lsusb при подключенном плеере.
$ lsusb | grep Samsung
Bus 002 Device 004: ID 04e8:5092 Samsung Electronics Co., Ltd
$ lshal | less
Тут копируем весь блок информации про плеер.
И наконец, загружаем наш патч. Поскольку патч в формате git, разработчикам очень просто интегрировать его в репозиторий.
Точно так же можно написать и послать патч к любому другому компоненту freedesktop.org.
Subscribe to:
Posts (Atom)