ноября 10, 2009

Ubuntu 9.10 + Google Chrome

В общем-то мне нравится FireFox, идущий в поставке с Ubuntu. Решил попробовать как будет себя вести Chromium на linux. Для этого добавим в /etc/apt/sources.list строку:


deb http://ppa.launchpad.net/chromium-daily/ppa/ubuntu karmic main

Обновляем базу приложений:

sudo apt-get update

И устанавливаем сам браузер:

sudo apt-get install chromium-browser chromium-browser-inspector libv8-0

Вот и результат:



ноября 02, 2009

MediaCenter: Step 8 - Update 9.10

Случилось так, что дети "нечаянно" нажали reset при обновлении xubuntu на медиацентре. Как результат - обновилось все не в лучшем виде. Но, как говорится горе - не беда. Пришлось обновить все "с нуля".

Результаты радуют :)
  1. Автоматом определился пульт ДУ,
  2. Автоматом определилась звуковая карточка.

Осталось настроить разрешение монитора как описано здесь. И все :)

XBMC в этот раз установил из svn ppa.  Просто и постоянно свежая версия.

Жить становися проще, жить становится веселее :)

сентября 29, 2009

MediaCenter: Step 7 - Result

Вот тут кто-то спрашивал что у меня получилось и как работает. Так вот выкладываю скриншоты (слегка ужатые):

Видеотека - фильмы:




Видеотека - сериалы (горячо любимый Top Gear):



Видеотека - сериалы (не менее любимый Доктор Хауз):



Музыкальная библиотека:



Фотографии:



Погода в Минске :)



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

сентября 23, 2009

MediaCenter: Step 7 - Samba

Кроме всего прочего неплохо было бы заливать по сети что-нибудь в мой медиа-центр. Так что совершенно необходимо выполнить следующее :)

bird@shuttle:~$ sudo apt-get install samba

Так как в своей домашней сети вредить некому, то просто прописываем в /etc/samba/smb.conf следующее:

security = share
unix charset = utf8
dos charset = cp1251
display charset = cp1251
guest ok = yes
guest account = nobody
[Public]
        comment = Public Folder
        path = /home/bird
        writeable = yes
        guest ok = yes
        create mask = 0666
        directory mask = 0777
        read only = no
Для того чтобы уже находящиеся там файлы были доступны обычным пользователям (привет жене :) пишем в консоли:

bird@shuttle:~$ sudo chmod -R a+w ./

MediaCenter: Step 6 - Монитор и проектор

Задача:
Нужно показать одну и ту же картинку на монитор и проектор.

Исходные данные:
Получилось так, что монитор и проектор, подключенные к медиацентру не засинхронизированы по разрешению. То есть у монитора рабочее разрешение - 1440 на 900 пикселей, а у проектора - 1280 на 720. Получается, что даже соотношения сторон не совпадают. Причем, если подключить оба устройства к компу - автоматически при загрузке xubunt'ы устанавливается что то типа 1024 на 768. Это то разрешение, которое поддерживается обоими устройствами. Но это никуда не годится. Смотреть фильмы на 1024. когда знаешь, что можно на 1280 - это не по мне :)

Порывшись по интернетам, выяснил, что решения может быть два (вариант с xrandr - отпадает так как каждый раз запускать его при включении-выключении проектора не хочется). 1) установить для обоих устройств 1280 на 720, 2) как-то настроить виртуальный рабочий стол и на одном из устройств использовать его со смещением.

Если не вдаваясь в подробности - пока что выбрал первый вариант. Но появилась еще одна засада: при попытке установить для монитора разрешение 1280x720 - Xorg написал, что данное устройство не поддерживает такой режим. Не беда. Попробуем воспользоваться утилитой gtf и сгенерить нужный нам режим.

bird@shuttle:~$ gtf 1280 720 75
# 1280x720 @ 75.00 Hz (GTF) hsync: 56.40 kHz; pclk: 95.65 MHz
Modeline "1280x720_75.00" 95.65 1280 1352 1488 1696 720 721 724 752 -HSync +Vsync


Вставляем его в xorg.conf:


Section "ServerLayout"
Identifier "X.org Configured"
Screen "Screen0"
Screen "Screen1"
EndSection

Section "Module"
Load "record"
Load "dri"
Load "extmod"
Load "glx"
Load "dbe"
Load "dri2"
EndSection

Section "Monitor"
Identifier "VGA"
Modeline "1280x720_75.00" 95.65 1280 1352 1488 1696 720 721 724 752 -HSync +Vsync
EndSection

Section "Monitor"
Identifier "PROJ"
Modeline "1280x720_75.00" 95.65 1280 1352 1488 1696 720 721 724 752 -HSync +Vsync
EndSection

Section "Device"
Identifier "Card0"
Driver "intel"
BusID "PCI:0:2:0"
EndSection

Section "Device"
Identifier "Card1"
Driver "intel"
BusID "PCI:0:2:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "VGA"
SubSection "Display"
Depth 24
Modes "1280x720"
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Card1"
Monitor "PROJ"
SubSection "Display"
Depth 24
Modes "1280x720"
EndSubSection
EndSection

Перегружаем X сервер - ура! Все получилось! :)

PS. Единственный минус - небольшое искажение изображения на мониторе из-за непропорциональности размеров монитора и проектора. Но совсем немного. Не парит :).

сентября 15, 2009

L.Torvalds "Just For Fun"

Недавно все-таки удосужился прочитать книгу. Очень. Рекомендовано к прочтению всем. Даже тем, кто не интересуется linux. Книга написана так, что после ее прочтения хочется больше свободы. Очередной раз приходит понимание, что что-то не так... и должно быть по-другому. Чище и светлее. Чем-то напоминает времена и дух уже извращенного временем движения хиппи. Ну, по крайней мере, мне так показалось.

сентября 07, 2009

MediaCenter: Step 5 - Пульт ДУ

К сожалению, пульт, который я себе прикупил не работает "из коробки" в Xubuntu. Приходится шаманить.

Для начала устанавливаем сам пакет lirc обычным способом:

sudo apt-get install lirc

Затем, идем на официальный сайт lirc и скачиваем последние исходники. Собираем и инсталлируем.

cd lirc-0.8.x
sudo ./configure
sudo make
sudo make install


Но и это еще не все. Останавливаем lirc и выгружаем "плохие" модули:

sudo /etc/init.d/lirc stop
sudo rmmod lirc_mceusb2
sudo rmmod lirc_dev


Затем идем в /lib/modules/2.6.28-15-generic/misc и копируем оттуда скомпиленные ранее модули в соответствующие папки по адресу /lib/modules/2.6.28-15-generic/kernel/ubuntu/lirc

Вот теперь с чистой совестью можно запустить

sudo /etc/init.d/lirc start


и проверить работу пульта в irw.

сентября 05, 2009

MediaCenter: Step 4 - CD

А! Вот еще что.
Дабы при нажатии на кнопку лотка CD-рома не вылетало некрасивое системное сообщение поверх XBMC что, дескать, не могу размонтировать устройство, добавим строку dev.cdrom.lock=0 в файл /etc/sysctl.conf

сентября 03, 2009

Новый XBMC

Пока я прохлаждался на берегах Черного моря, вышел новый релиз моего любимого XBMC. И не только релиз. Сменился сайт, появилось вменяемое вики и т.п. Что немало доставляет.



В "официальном" доступе появился скин Aeon. По скриншотам - очень красивый. Пока что нарисовалась одна проблема. В общем-то ожидаемая - русские буквы. Буду искать решение. Может быть попробовать подложить что-нибудь похожее с русскими символами?

августа 19, 2009

MediaCenter: Step 2 - Torrents

Естественно, что самый массовый источник контента для медиацентра - это торренты. Для себя в качестве клиента я определил deluge. Всем хорош, но вот одна беда - пока что не умеет работать с расписанием. А в ситуации, когда твой провейдер ограничивает время работы в сети это важно (у меня ночной unlimited пакет, соответственно днем качать нельзя).

Нам на помощь приходит вот этот скрипт в связке с cron'ом.

D_CTRL = /home/bird/deluge/deluge_config.py
D_FAST = "200"
D_OFF = "0"

# каждые 10 минут от 18 до 9 утра по будним дням
# поддерживаем максимальную скорость
*/10 18-23,0-8 * * 1-5 ${D_CTRL} ${D_FAST}

# днем все отключаем
*/10 9-17 * * 1-5 ${D_CTRL} ${D_OFF}

# в выходные качаем весь день на полной скорости
*/10 * * * 0,6 ${D_CTRL} ${D_FAST}

августа 17, 2009

MediaCenter: Step 1 - Sound

Решил заново переустановить свой медиацентр. С нуля. Показалось, что mythbuntu какая-то некрасивая и перегружена ненужным мне. Как и прежде все будет работать на старой конфигурации, описанной здесь. Единственное, что добавилось - второй винт на 1Тб.

Описывать саму установку системы (а это бужет Xubuntu) я не буду. Там все тривиально. Почему именно она? Из-за легкого xfce.

Итак, какие вещи не работают "из коробки" на моем шаттле и что нужно допиливать по месту:
  1. Не идет звук на ресивер через оптику. Именно звук. Потому, что сам сигнал есть - это показывает светящийся значок "PCM" на панели ресивера.
  2. Система не откликается на нажатия кнопок пульта ду.
В этом посте рассмотрим решение, которое подходит для звуковой карты моего компа: Intel HDA, чип Realtek ALC888. Звук будет выводится через ALSA. Конфигурация, с которой все заработало:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC888 Digital [ALC888 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0


cat /etc/asound.conf:

pcm.!default iec958:Intel

cat /etc/modprobe.d/alsa-base.conf - здесь важна последняя строчка. Остальное все стандартная конфигурация от Ubuntu.

# autoloader aliases
install sound-slot-0 /sbin/modprobe snd-card-0
install sound-slot-1 /sbin/modprobe snd-card-1
install sound-slot-2 /sbin/modprobe snd-card-2
install sound-slot-3 /sbin/modprobe snd-card-3
install sound-slot-4 /sbin/modprobe snd-card-4
install sound-slot-5 /sbin/modprobe snd-card-5
install sound-slot-6 /sbin/modprobe snd-card-6
install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules
install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
#
# Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
#
install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
# Cause optional modules to be loaded above sound card driver modules
install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }

# Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
# Prevent abnormal drivers from grabbing index 0
options bt87x index=-2
options cx88_alsa index=-2
options saa7134-alsa index=-2
options snd-atiixp-modem index=-2
options snd-intel8x0m index=-2
options snd-via82xx-modem index=-2
options snd-usb-audio index=-2
options snd-usb-us122l index=-2
options snd-usb-usx2y index=-2
options snd-usb-caiaq index=-2
# Ubuntu #62691, enable MPU for snd-cmipci
options snd-cmipci mpu_port=0x330 fm_port=0x388
# Keep snd-pcsp from beeing loaded as first soundcard
options snd-pcsp index=-2

options snd-hda-intel model=3stack-6ch-dig


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

августа 11, 2009

Чего не хватает в CSS?

Мне кажется в спецификациях CSS не хватает одной важной вещи. А именно, как бы это назвать, - метаклассов что-ли.

Смысл №1 (простой)

$meta myColor1 { orange } /* определяем метакласс */
.myClass { color:$myColor1; } /* используем метакласс */


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

Смысл №2 (более сложный)

Например, у меня есть N элементов с одинаковыми свойствами: цвет текста, цвет фона и размеры отступов. В таком случае можно было бы описать метакласс примерно в таком виде:

$meta myMeta {
color: orange;
background: white;
padding: 10px;
/* можно добавить что-нибудь еще */
}

И использовать примерно так:

.myClass$myMeta {
/* здесь описываем дополнительные стили к этому классу */
}


В этом случае .myClass наследует все определенные стили в метаклассе, ну и плюс добавляет свои. Получилось некое подобие ООП :).

Понятное дело, что синтаксис разметки придуман "на ходу" и может быть каким угодно, но смысл, я думаю, ясен. Мне кажется, что этим можно значительно упростить задачу верстальщикам. Ведь при более-менее сложном проекте приходится верстать "простыни" CSS кода.

августа 04, 2009

Twitter & Jabber

Все-таки завел себе аккаунт на твиттере. Просто потому, что недавно очень нестабильно работал dreamhost'овский хостинг. Оказывается, они все, что у них происходит пишут в своём аккаунте. Мне показалось это удобнее, чем искать проблему, писать в саппорт и ждать ответа - что же случилось с сервером. К тому же сразу нашел там парочку друзей и знакомых.

Делее родилась мысль: а не может же такого быть, что бы не было какого-нибудь транспорта из Twitter в Jabber! Таки есть. Теперь все, на кого я подписан в Twitter, пишут мне в Jabber:)

июля 28, 2009

Укрощение manage.py в Eclipse

Сегодня додумался до вроди бы очевидной вещи.

Уже давно использую этот совет для отладки Django приложения в Eclipse. И почему же то те метод не использовать для других рутинных операций. Ведь каждый раз (по крайней мере раз в день, учитывая сильные стороны консоли в Linux :) приходится в консоли набирать:

python manage.py ...

А если при этом гуляешь по директориям, то приходится каждый раз возвращаться в корень проекта. Очень напрягает. Итак, так почему бы не создать несколько конфигураций для запуска этих комманд в самом Eclipse? Все очень просто.

Создаем новую конфигурацию для запуска:



  1. Называем конфигурацию "Run syncdb", если мы собираемся синхронизировать базу данных.
  2. Выбираем главный модуль. Это будет "manage.py".

Заполняем поле "Program arguments":



... желаемой коммандой. В данном случае это будет "syncdb". И нажимаем "Apply" и "Close". Все. Можно пользоваться этой коммандой из меню.

июля 15, 2009

Пост про копирайт

Навеяно вот этим постом в живом журнале.

Да, я тоже грешен и пользуюсь торрентами для скачивания интересного мне контента, но в этом случае я готов за него заплатить. Я готов платить за музыку, которая мне нравится. И это касается не только atmoravi и музыки вообще. Я готов платить за софт, который мне нравится, провайдеру за интернет, за еду, за горячую воду, за проезд, и за воздух. Главное условие - чтобы понравилось и засело в голове.

Например, за byfly - платить не хочется :)

июня 30, 2009

Windows Media Center

... идет лесом. Буду переходить на XBMC. Потому как это глючливое поделие от Microsoft порядком надоело. Единственное, что меня пока удерживало - это поддержка tv-тюнера (вроди как нашел решение под мой Aver 116, на днях попробую). Но как показала практика - смотреть в белоруском эфире нечего. Поэтому винду - в топку!

Основные проблемы (для меня) в Windows Media Center:
  1. Тормоз. Не понятно почему, но периодически начинает тормозить.
  2. Пульт. Непонятное время отклика на нажатие клавиш на пульте ДУ. То срабатывает сразу, то надо давить на кнопку по нескольку раз.
  3. ОЧЕНЬ слабенький функционал. XBMC на порядок выше.
Так что... винда наверное поживет пока на втором винте пару дней пока жена не привыкнет к новому интерфейсу :) и достаточно с меня этого геморроя...



XBMC + Mediastream skin - мой выбор. Boxee пока что всетаки в "альфе".

июня 19, 2009

Снова в Хельсинки

Вернулись в понедельник из поездки в Хельсинки. Ездили к друзьям. Хорошая поездка получилась. Обновил свой S-Max :). Фотоотчет по ссылке.

мая 22, 2009

Вопрос на засыпку

Есть некая html-форма, в которой всем input-элементам присвоен стиль:

form input {
border:1px solid grey;
}


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

form input.submit {
/* решение проблемы */
}


Как сделать?

апреля 24, 2009

И... поехали!

DLINK DIR-320 + VPN

Не забудьте сменить прошивку на свежую. На старой прошивке VPN (PPTP) не поднимается.

UPD1.
Судя по статистике посещений - эта тема самая животрепещущая:)
Для тех, кто в танке кому нужны детали, вот они:

На момент покупки в моем девайсе стояла версия 1.0. Так вот на ней нивкакую не хотел подыматься линк (PPTP) к провайдеру. Лечится - прошивкой новой версии. Скачиваем свежую и закачиваем через админку DLINK'а. На данный момент самая свежая - 1.1. Для тех, кто не смог самостоятельно поднять соединение - техподдержка провайдера и гугл вам в помощь. Удачи!

UPD2.
Вообще-то лучше в такой девайс воткнуть что-нибудь типа dd-wrt. Там го-о-о-раздо больший функционал по сравнению с заводской прошивкой. Что я, в общем-то, и сделал :) Чего и вам желаю.

Shuttle Computer PC17 Digital Audio Upgrade

Привезли сегодня такую штуку. Подключил к своему Shuttl'у. По ощущениям первых 10 минут - даже со встроенной карточки звук получился. По крайней мере, меня устраивает :)

апреля 15, 2009

Optical SPDIF

Давно в голове крутится мысль: лучше выводить звук из компьютера на ресивер (усилитель)?

Определил несколько способов:
  1. Вывод с аналогового выхода встроенной звуковой карточки
  2. Вывод с аналогового выхода дополнительной "крутой" звуковой карточки (на интерфейсе PCI либо ePCI)
  3. Вывод с аналогового выхода дополнительной "крутой" звуковой карточки (на интерфейсе USB)
  4. Вывод по оптике со встроенной звуковой карточки
  5. Вывод по оптике со внешней звуковой карточки
Понятно, что первый вариант ни в какие ворота не лезет. Побродив по форумам и почитав всяко-разные мнения по этому поводу, решил, что парится насчет "крутой" карточки особо не стоит. Цифра она и в африке цифра. Что на встроенной, что на внешней покруче. Были какие-то предположения по поводу передискретизации: действительно смысл в этом есть, но только в том случае, если выходные данные и приемник оперируют разными частотами этой самой дескритизации.

Вроди как чип, что на метринке шаттла держит все частоты и, думаю, что проблем с этим не будет.

Еще один плюс вывода цифры: получатся сбалансированная система. В том смысле, что внутренний ЦАП ресивера должен по идее раскодировать звук на том уровне качества, которое достаточно (и не более) для его же усилителя.

А! И еще. Соединение по оптике гальваничеки развязывает компоненты, что немало важно. Если в чем-то ошибаюсь - поправьте, плз.

апреля 11, 2009

Фото Washington DC

На днях пришло вот такое письмо:

Hi Alexander,

I am delighted to let you know that your submitted photo
has been selected for inclusion in the newly released
seventh edition of our Schmap Washington DC Guide:

Great Falls Park
http://www.schmap.com/washingtondc/sights_water/p=34337/i=34337_24.jpg

Пожалуйста! Мне не жалко :)

апреля 05, 2009

Все-таки Jamo

На днях определился. Выбор пал на Jamo C405. JBL почему-то не играл. Совсем. Видимо мой ресивер не смог их раскачать. Посоветовали сменить ресивер на стерео-усилитель. Скорее всего смысл есть.

апреля 02, 2009

Вроди как подходит к финалу...

... моя эпопея со сборкой медиацентра. Осталось в субботу вабрать колонки. Выбор лежит между Monitor Audio BR5, Jamo C405 и JBL ES90.

Что получилось:
  1. Shuttle SG31G2 + 1GB RAM + 500GB HD + Intel E8400 + AVerTV MCE 116 Plus под Windows Vista MCE (64bit)
  2. Pinnacle Remote Kit
  3. Ресивер Yamaha RX-V459 купленный пару лет назад
  4. Монитор Asus VW195D
  5. Проектор Mitsubishi HC1600 HD
Думаю, правда взять еще нормальную звуковую карту. Типа вот такой.

февраля 20, 2009

ICQ Autoresponse

Жалко, что не нашел раньше этого сайта. Это всё в связи с переходом меня на jabber. Суть в том, что этот сайт - автоответчик, который сидит за меня в онлайне (ICQ). В "автоответ" просто поставил ссылку на этот пост.

PS. Из наболевшего: если кто-нибудь вам скажет, что создать хороший проект на .NET можно БЫСТРО. Не верьте.

PPS. Попробовал Adobe Lightroom - понравилось.

февраля 01, 2009

Nikon D90

Кстати, я как-то писал про недостающую функцию в фотоаппаратах. Так вот в моем новом D90 она есть. Правда, для того чтобы данные о положении были записаны в файл фотографии необходим дополнительный модуль GP-1 от того же Никона. И стоит он дополнительных 200 енотов. Но, все равно - это радует.

января 29, 2009

Гуд бай Америка!

Вслед за ICQ приходит время попрощаться с США.

Ну неужели! Наконец. Случилось то, чего ждали три месяца. У нас есть билеты обратно. Во вторник, 3 февраля 2009 года отбываем на родину.

Уфф...

января 23, 2009

Гуд бай ICQ!

В свете последних событий (1, 2, 3, 4, 5) с аськой сделаю все-таки этот нелегкий шаг. Не нравиться мне все это. С сегодняшнего "слезаю" с ICQ. Перехожу на jabber.

Вот информация что такое jabber и как им пользоваться. Покликайте по ссылкам в статье - там много полезной информации. Я пользуюсь мирандой - меня устраивает. Как настроить ее на работу с гугловским аккаунтом (да, у меня аккаунт там) написано здесь.

И очень надеюсь, что контакты из моего контакт-листа сделают тоже самое.

До встречи, пишите в jabber по адресу voronizer[at]gmail.com или в скайп по тому же нику.

января 22, 2009

Сон

Читая сегодня утром свежую rss-ленту наткнулся на пост про сны и вспомнил свой "самый" сон. Самих подробностей толком уже и не помню, но, дело было приблизительно так:

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

Как ни странно рука прижилась мгновенно. Помню, что кто-то что-то спросил. Суть вопроса не запомнилась. Но ответ свой запомнил:

"Конечно, все так и должно было быть. Ведь в руках у самурая - Меч Дизайнера."

января 20, 2009

AutoSizeRowsMode

В стандартных UI-компонентах .NET есть такой замечательный компонент как DataGridView. Всем, кому удалось поработать с ним - в курсе. Так вот, создавая очередную табличку, привязал к нему datasource, распихал поля, настроил вид таблицы. И надо было сделать так, чтобы текст внутри ячейки не скрывался, если он не влазит в нее, а увеличивалась высота строки и текст просто переносился внутри этой же ячейки на другую строчку.

Отлично! Для этого же есть замечательное свойтство AutoSizeRowsMode, установив значение которого в AllCells, получаем нужный результат. Но, не тут то было. Все гораздо сложнее. Оказывается, при количестве строк около 1500 (мне столько было нужно, с другим количеством не тестировал) все это дело начинает жутко тормозить. Решение нашлось, конечно, но... осадок то остался :)

Итак, решение:
  1. Установить значение свойства AutoSizeRowsMode в DisplayedCells
  2. Обрабатывать события Resize и Scroll таким образом:
dataGridView.AutoResizeRows( DataGridViewAutoSizeRowsMode.DisplayedCells );

Вот так... все через (_|_).

января 07, 2009

Страна идиотов

А история такая:

Идет уже третий месяц как мы с США. Собрались мы с женой отправить посылку на родную и незабываемую родину Беларусь. Родителям и друзьям подарки на Новый год. По мелочи. Коробочка получилась 50х50х50 см. Барахла долларов на сто. Ну, думаем, сделаем приятное и родным и себе. Оказалось, что посылать посылку в Беларусь - это очень плохая идея. Геморрой получился еще тот. Цитата:

Посылку забрать мне самой не удалось - они выставляют совсем другие суммы чем указано в письме (стоимость доставки например). Я попросила Диму помочь с этим. Он сказал, что надо получить от тебя сканированный документ на доставку - если у тебя есть возможность пришли плиз его на мой электронный адрес, просто от этого зависит надо мне будет нести еще и декларацию в налоговую или нет. Короче говоря страна идиотов.. Я в шоке.. Мол это расценивается как материальная помощь из-за рубежа. Странно что если бы отправили обычной почтой типа емс то ничего бы этого не было. Вообще, конечно, понятно что fedex блин это заморочки - боюсь что забрать посылку получится совсем недешево - они еше говорят что мы им должны за якобы какое то хранение. В любом случае Димка сказал что он ее заберет и потом мне просто скажет во сколько это обойдется. Но если есть документы на доставку то есть надежда что мы хотя бы вложимся долларов в 60. Есть еще один вариант - я напишу отказ и они ее просто назад отправят - стоит так делать или нет как ты думаешь?

"Это же надо! Кому-то шлют подарки из-за границы! Непорядок. И мне дайте кусочек!"

Пиздец. Другого слова я не нахожу.

UPD/ а вообще, мне кажется, что государство, проводя такую политику, унижает своих граждан, приравнивает их к людям "третьего" сорта. Тьфу, гадость...

января 03, 2009

История про музыку

Показывали Дашке тут недавно мульт Мадагаскар. Ребетёнок разтанцевался под конец, ну и решили - раз уж танцуешь - поставим тебе музыку. Все, что на компе нашел, уже приелось. И тут в очередной раз жмякнул на Jamendo в своем Rhythmbox'е. Жена и говорит: может найдешь Атморави? Хочется русского послушать. Атморави, конечно же не нашел. Но вот какими-то непонятными путями выскочили одни французы. Называются L'Oeil du Ficus. Понравилось.

Да и Jamendo - очень забавная фигня :) И забавное в нем то, что музыка распространяется под лицензией Creative Commons.