четверг, 24 сентября 2009 г.

Тест на вменяемость :-)

Например, я хочу нарисовать осциллограмму гармонического сигнала. Например, с частотой 50 Гц. Например, на протяжении секунды.
Те, кто еще что-то помнят и понимают, сообразят, что я должен бы по идее увидеть 50 периодов синусоиды, там, или косинусоиды.

Пример на MATLAB:

f=50;
t=0:0.01:1;
s = sin(2*pi*f*t);
plot(t,s);

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

Тест на вменяемость: что и почему не так?

вторник, 22 сентября 2009 г.

Proba Facta #02

четверг, 17 сентября 2009 г.

ОС №2

пятница, 11 сентября 2009 г.

Аудио в MATLAB

Записывать можно с помощью wavrecord():

>> speech = wavrecord(16000, 8000, 1, 'double');
>> sound(speech) % воспроизведение с частотой дискретизации по умолчанию 8192 Гц)

Это запись 16000 отсчетов с частотой дискретизации 8 кГц, моно (только Windows).

Запись с помощью audiorecorder():
>> x = audiorecorder(16000, 16, 1);
>> record(x);
% recording ...
>> stop(x); % другие комманды: pause(), resume()
>> play(x);
>> speech2 = getaudiodata(x, 'double'); %преобразование

x: это объект audio recorder
16000: Гц, частота дискретизации (обычные значения: 8000, 11025, 22050, 44000)
16: точность представления отсчета в битах
1: количество каналов

Максимальный динамический диапазон для 16-битного представления -32768~32767. Он масштабируется к диапазону –1.0~1.0 в представлении double. Если по каким-то причинам значения сигнала вызывают переполнение, можно использовать sound(speech):
>> soundsc(speech, 8000); % или
>> sound(speech / max(abs(speech)), 8000);

Отображать во временной области так:
>> plot(speech); % или
>> plot([1:size(speech)]/8000, speech); % на оси x время в секундах

среда, 9 сентября 2009 г.

ОС №1

четверг, 3 сентября 2009 г.

Использование .Net классов в IronPython

На самом деле очень просто использовать .Net классы в IronPython. Первое о чем нужно помнить -- надо добавить ссылку (reference) на сборку вызываемого класса (также как и на C#).

Для этого надо использовать метод AddReference модуля clr. Правда необходимо, чтобы IronPython смог отыскать файл с указываемым пространством имен. Это достигается добавлением соответствующего пути к переменной sys.path.

Смотрите на пример. Сперва создадим простой класс на C#, который назовем TestClass и расположим в пространстве имен SampleClasses:

namespace SampleClasses
{
public class TestClass
{
public int Add(int a, int b)
{
return a + b;
}
}
}

Для простоты скопируем скомпилированный файл в папку C:\lib. Теперь запустим IronPython (будем считать, что вы его уже поставили). На экране появится что-то вроде этого:
Теперь, удостоверимся, что сборка SampleClasses доступна из IronPython:
>>>import sys
>>>sys.path.append(‘C:\\lib’)

Теперь добавляем зависимость:
>>>import clr
>>>clr.AddReference('SampleClasses')

Импортируем TestClass из пространства имен SampleClasses:
>>>from SampleClasses import TestClass 

Вот теперь все готово. Попробуем использовать этот класс:
>>>a = TestClass()
>>>a.Add(30,36)
66

Так вот это и работает. Теперь можно продолжить забавы с другими, уже готовыми классами .Net.

пятница, 28 августа 2009 г.

Proba Facta #1

четверг, 9 июля 2009 г.

Чем отличается предмет от объекта исследования?


Различение объекта и предмета – это чисто гносеологическая проблема. Возникает она всегда там, где по каким-то причинам перестает работать методологическое требование об использовании строго определенных понятий, и всегда там, где предмет науки, к которой относится данная деятельность, еще не выделен и не обоснован.
Различие между объектом и предметом возникло в связи с исследованиями в области гносеологии. Изучая объективный мир, те или иные стороны его, человек вырабатывает объективные знания об окружающей реальности. Каждый последующий исследователь прежде, чем приступить к изучению некоторого реального объекта, обязан изучать имеющуюся в обществе совокупность знаний, представляющих этот объект. В этом случае _совокупность знаний_ становится _предметом_ изучения.

Устанавливая сходства и различия между отдельными объектами реального мира, человек фактически выделяет отдельные объекты, определяет их как предметы, как потенциальные предметы для своей деятельности, для изучения. В этом случае предметы также являются объективной реальностью, ибо их существование не зависит от человека. От человека зависит лишь сам момент выделения объекта. Но выделив объект, человек превращает его в предмет деятельности. Это – особенность человека превращать объект в предмет своей деятельности. Выделенные из объективной реальности отдельные объекты, становятся предметами деятельности человека, и каждый из этих предметов при соответствующих условиях может стать предметом, специальным предметом специфической науки.

Таким образом, объект исследования – это та часть объективной реальности, которую исследует ученый, а совокупность знаний об этом объекте и сам объект в процессе исследования – это предмет изучения (исследования).

Молоток – это объект, который имеет определенную форму, свойства, имеет ручку, ударник и т.д. Но, как только, этим объектом (молотком) человек начинает забивать гвозди, молоток становится предметом деятельности, инструментом по забиванию гвоздей.


otvety.google.ru

среда, 1 июля 2009 г.

Регистрация программы для ЭВМ в Роспатенте

Иногда бывает нужно зарегистрировать программу в Роспатенте. Например, чтоб несуществующая лаборатория получила доступ к конференциям и выставкам. На хабре вот написали как. Хотя мы уже года 1,5 назад получили такую штуку на PicLab.

воскресенье, 28 июня 2009 г.

Python: input vs raw_input

Вот пример:

#! /usr/bin/python
# This Python file uses the following encoding: utf-8

"""input возвращает объект, являющийся результатом
упрощения выражения. raw_input возвращает строку"""

name = "Илья"
age = 26

first = raw_input("Пожалуйста, введите свой возраст ")
second = input("Пожалуйста, введите свой возраст еще раз ")

# first будет содержать строку
# second может содержать любой объект, вы можете использовать
# в выражении даже "name" и "age" со значениями, которые были
# присвоены во время исполнения...

print "Вы сказали, Вам ",first
print "Потом Вы сказали, что Вам ",second


Примеры запуска этого кода:
Пожалуйста, введите свой возраст 45
Пожалуйста, введите свой возраст еще раз 45
Вы сказали, Вам 45
Потом Вы сказали, что Вам 45

Пожалуйста, введите свой возраст 45 + 7
Пожалуйста, введите свой возраст еще раз 45 + 7
Вы сказали, Вам 45 + 7
Потом Вы сказали, что Вам 52

Пожалуйста, введите свой возраст 10+2
Пожалуйста, введите свой возраст еще раз age+10
Вы сказали, Вам 10+2
Потом Вы сказали, что Вам 36

Настройка NetBeans и SVN для игнорирования pyc-файлов

Хотя Python и является интерпретатором, но в процессе выполнения программы он создает файлы с расширением .pyc, которые содержат байт-код соответствующих исходных файлов. Эти файлы Python размещает в тех же местах, где лежат и исходные выполняемые файлы с расширением .py.

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

example.py
example.pyc

Очевидно, файлы с байт-кодом являются второстепенными и только мазолят глаза, хотя и заставляют программу работать быстрее. При этом они мазолят глаза не только в директориях на диске, но и NetBeans их охотно отображает. Кроме того, они (pyc-файлы) так и норовят пролезть в SVN-хранилище.

Однако решение есть!

Для SVN:
Открываем конфиг-файл($HOME/.subversion/config или %APPDATA%\Subversion\config под виндовсом) и добавляем в секцию [miscellany] строчку

global-ignores = *.pyc

Для NetBeans:
Файлы, игнорируемые средой, указываются в меню Tools | Options | Miscellaneous | Files | Ignored Files Pattern

Вот и все. Чтоб SVN подцепил конфиг, среду надо перезапустить.

суббота, 27 июня 2009 г.

RGB, aRGB и преобразования

Среди форматов представления RGB есть три, наиболее распространенные:
RGB888 (8 бит на канал);
RGB666 (6 бит на канал);
RGB565 (5 бит на канал для R и B; 6 бит для G).

RGB888 содержит 24 бита, представляющих около 16 миллионов цветов. RGB666 обычно используется в портативной электронике, но работать с 18 битами данных не удобно на обычном 16-битном DSP. Таким образом, RGB565 наиболее популярен в индустрии.

Преобразование R8 в R5 откидыванием последних битов:

R8 >> 3, (255 >> 3 = 31)

Из R5 в R8 вы можете перейти используя масштабирование или дублирование битов:
R5*255/31, R5 << 3 | R5 >>2

В формате aRGB имеется дополнительный альфа-канал (0xAARRGGBB). Альфа указывает на прозрачность пикселя (0x00 для полной прозрачности, 0xff для полной непрозрачности).

выход = a x (пиксель тона) + (1-a) x (пиксель фона)

Преобразование RGB888 в aRGB:
r = (rgb >> 16) & 0xFF (или сначала маска, потом сдвиг: 0xff0000, >>16)
g = (rgb >> 8) & 0xFF
b = (rgb >> 0) & 0xFF
aRGB = 0xff000000 | (r << 16) | (g << 8) | (b)

aRGB в RGB888:
r = (aRGB >> 16) &0xFF
g = (aRGB >> 8) &0xFF
b = (aRGB >> 0) &0xFF
a = (aRGB >> 24) &0xFF
RGB888 = (r << 16) | (g << 8) | (b)

RGB888 в RGB565:
r >> 3 
g >> 2
b >> 3
(r << 11) | (g << 6) | (b)

пятница, 26 июня 2009 г.

Настройка nginx для ClickOnce

Наконец-то я добрался до завершающей стадии -- настройки nginx. Тут нет ничего суперсложного. Достаточно просто указать откуда и, что отдавать.

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

Основной конфигурационный файл находится (в Debian, в моем случае) вот здесь: /etc/nginx/nginx.conf. В этом файле нужно найти строчку типа:

include /etc/nginx/sites-enabled/*

Далее, как советует автор nginx, ее лучше заменить на

include /etc/nginx/sites-enabled/*.conf

Это нужно для того, чтобы nginx не подцеплял при конфигурировании файлы из директории sites-enabled, которые создаются некоторыми текстовыми редакторами в качестве резервных копий.

Теперь файл default из папки sites-enabled переименовываем в default.conf соответственно с предыдущей модификацией.

Остается внести в default.conf соответствующие настройки для http-отдачи из соответствующей папочки.

server{
listen 98.229.99.10:80;
listen 98.229.100.10:80;

server_name soft.example.com;

access_log /var/log/nginx/soft.example.access.log;

location / {
root /var/ftp/clickonce;
index index.html index.htm;
}
}

Сие означает -- слушать оба серверных интерфейса на 80 порту, обслуживать запросы обращенные к soft.example.com, вести лог в заданом файле, директорий /var/ftp/clickonce сопоставить с корнем soft.example.com.

Теперь можно разместить в директории /var/ftp/clickonce тестовый файл index.htm, перезапустить nginx, попробовать открыть адрес soft.example.com в браузере и порадоваться :-)

В следующем посте перейдем к тестированию.

Установка ftp-сервера для ClickOnce

Послания множатся и множатся. На тему ClickOnce уже имеются целых два: первое и второе. В них можно отыскать истоки рассматриваемой темы.

Настала пора переходить к практическим действиям по настройке удаленного хранилища для ClickOnce. Напомню, что удаленный сервер в моем случае под управлением Debian. Попробуем настроить ftp-сервер, который будет отвечать за процесс публикации проекта.

Для этого нужно выбрать какой-то ftp-сервер и настроить его. Без долгих предыханий сообщу, что остановил выбор на vsftpd, хотя объяснить, почему именно он был выбран, я врядли смогу.

Итак, установка. Заходим на удаленный сервер по ssh. К слову сказать, я для этой цели использую Xshell. Но это тут ни при чем.

1. Переключаемся в рута

apalkoff@myserv:~$ su
2. Устанавливаем vsftpd
myserv:/home/apalkoff# apt-get install vsftpd
3. Создаем директорий для ftp-сервера, например /var/ftp
# mkdir /var/ftp
4. Устанавливаем доступ к папке
# chmod 750 /var/ftp
5. Создаем группу пользователей
# groupadd ftpgroup
6. Устанавливаем нового владельца директория
#chown root.ftpgroup /var/ftp
7. Добавляем пользователя (ftp не анонимный будет, ессно)
# useradd -g ftpgroup -d /var/ftp/clickonce pubuser
8. Устанавливаем пользователю пароль
# passwd pubuser
9. Редактируем файл настроек /etc/vsftpd.conf, чтоб он был примерно таким (что-то по умолчанию, что-то я поправил):
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=0022
file_open_mode=0744
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
ftpd_banner=Welcome to apalkoff FTP service.
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
10. Перезапускаем vsftp-сервер
# /etc/init.d/vsftpd restart
10a. А если он и не работал, то запускаем
# /etc/init.d/vsftpd start
11. Проверяем работает ли
# netstat -apn
В случае успеха в ответе на команду должно присутствовать что-то вроде
tcp   0   0 0.0.0.0:21   0.0.0.0:*   LISTEN   23582/vsftpd
12. Коннектимся каким-нибудь клиентом, вводим пароль и логин созданного пользователя.

Дополнительно надо проверить, что создаваемые через FTP файлы имеют набор разрешений -rwxr--r--, а директории drwxr-xr-x. Это совершенно необходимо для отдачи содержимого по http. Но об этом в следующем посте.

четверг, 25 июня 2009 г.

План настройки хранилища ClickOnce

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

Технология позволяет опубликовать программу:

  • на локальной машине -- C:\deploy\myapplication
  • на файл-сервере -- \\fileserver\myapplication
  • на FTP-сервере -- ftp://ftp.example.com/myapplication
  • на HTTP-сервере -- http://www.example.com/myapplication
Однако, для установки приложения могут использоваться только протоколы:
  • http://
  • https://
  • file://
Таким образом, установка с FTP-сервера невозможна, хотя туда можно производить публикацию.

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

Было принято решение, что публикация будет происходить по протоколу FTP, а установка конечным пользователям по протоколу HTTP. Надо отметить, что на сервере уже установлен nginx, за которым находится apache. Поскольку предполагается отдавать по http статику, то надо, чтоб эти запросы обслуживал именно nginx.

Итак, сформировался план действий необходимых для достижения цели:
  1. Установка и настройка ftp-сервера, приконнекченного к \var\ftp
  2. Настройка nginx на отдачу по http содержания папочки \var\ftp
  3. Пробная публикация тестового приложения и наслаждение плодами трудов
Продолжение, как говорится, следует...

Технология ClickOnce

Вы, наверное, знаете, что программы не растут на программном дереве, а делаются особым подвидом людей: программерами. Так вот, опять же вы знаете, что большинство программ приходит к потребителю ввиде дистрибутива, то есть программы установки. Дистрибутив призван поставить все как надо и куда надо, чтобы пользователь не заморачивался всякими записями в реестре и т.д. Короче говоря, с помощью носителя информации и дистрибутива производится доставка софта пользователю. Например, PicLab имеет дистрибутив, который забирается к себе домой с помощью, ну допустим, флешки.

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

Короче говоря, я нашел, что есть де технология ClickOnce, которая решает (я не сказал, но мы тут про винду, конечно, говорим). Приятным сюрпризом стало то, что она уже живет на моем компе вместе с Visual Studio, и, стало быть, ею можно пользоваться легко и непринужденно.

Основные черты:

  • Автоматическое обновление
  • Откат после установки
  • Обновление через Интернет
  • Добавление приложения в меню Пуск
Проверка обновлений может быть настроена двумя способами:
  • До запуска программы -- сначала проверка, обновление (если надо), запуск.
  • После запуска -- запуск программы, проверка по расписанию, обновление (если надо) .
Это все круто, но есть минусы, ну то есть то, что эта технология не умеет:
  • Установка общих файлов
  • Установка драйверов
  • Установка глобального кэша сборок
  • Установка для нескольких пользователей
  • Добавление приложения в группу «Автозагрузка»
Кроме того, надо отметить, что программы могут оставаться сетевыми (при клике на ссылку программа загружается и запускается, после закрытия -- удаляется), или быть установленными на компьютер. В первом случае обновления вовсе бесполезны, поскольку каждый раз будет загружаться и запускаться свежая версия. Но тут надо помнить про нагрузку на сеть (программа должна быть каких-то вменяемых размеров). Во втором случае остается локальная копия, которая проверяет (а может и не проверять) наличие обновлений. Локальная установка, кстати, не завязывает выполнение программы на сеть (ну вдруг у инет отвалился).

Замечу еще, что программа ставится не в Program Files. Это как-то непривычно, конечно, но можно свыкнуться. Спрашивать куда ставится можно, но не нужно ;-) Официально это называется кэш ClickOnce. Реально это находится в папке пользователя со страшным-престрашным путем.

Вот так выглядит процесс обновления при запуске:

Короче говоря -- технология ClickOnce проста в использовании и эффективна. Надо брать.

Вы догадались, наверное, что в сети надо где-то размещать хранилище для «дистрибутива». Это безусловно так. Но об этом в следующем послании граду и миру.

Рекомендую к просмотру доклад:
Использование ClickOnce для быстрого разворачивания приложений

пятница, 19 июня 2009 г.

What is a browser?

Узнайте мнение американского народа... Хи-хи

понедельник, 4 мая 2009 г.

Лекция для магистров -- первый блин

Решил сделать лекционно-практическое занятие для магистров телекоммуникаторов. Использовал Google Docs. Результат доступен для просмотра здесь.

воскресенье, 26 апреля 2009 г.

Про время и его экономию

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

Типичный кусок программы, который я выбрал для примера сообщает о скандале с ресурсом http://thepiratebay.org/ и звучит примерно так:



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



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

Поначалу было желание написать что-то такое свое, доморощенное, в MATLAB. Но после нескольких экспериментов с FFT я как-то поостыл и пошел более верным путем -- прогуглил, что уже сделано и как это работает. Оказалось, что тут зарыта целая обширная область исследований, в которой до сих пор идет борьба за повышение качества и понижение вычислительной сложности. Это тема отдельного разговора, но кто хочет -- можно ознакомиться вот здесь.

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



Пока поднимаю скорость воспроизведения до 150%. Планирую постепенно увеличивать. По 10% в неделю. Посмотрим до скольки сумею дойти без потери смысла :-)

четверг, 2 апреля 2009 г.

Поколение Y

Любопытную передачу услышал недавно. Тема -- поколение выросшее с 1983 по 2009. В такие рамки я тоже, вообще говоря, попадаю. Поэтому мне было достаточно интересно узнать как и что думают про нас (и про меня в том числе). На деле оказалось, что в основном обсуждалась современная, совсем уж молодежь, от ~14 до ~20, к которой я уже, по понятным причинам, не отношусь :-) Однако в силу профессиональной деятельности именно с ними в ближайшие годы мне предстоит встретиться, поэтому тема была для меня актуальна.

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

Вот я и думаю, чего же ждать? Кто и зачем придет в ВУЗ'ы в ближайшем будущем?

среда, 1 апреля 2009 г.

Первое апреля

Ну и что? Вот не знаю как вам, а мне не хочется что-то сегодня никого разводить. Не совсем как-то это меня веселит. Вот в чем прикол выставлять знакомых дураками? Самоутверждение что ли?


среда, 25 марта 2009 г.

Синхронизация папок

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

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

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

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

Вы спросите, а как же они зарабатывают баблос? Так очень просто -- если заплатить 100$ в год, то можно получить 50 Гб дискового пространства.

Все это счастье располагается по адресу: www.getdropbox.com

Добрый, посоветовавший софтинку, человек, например, сидя на работе кудает в такую папочку торренты, а домашний комп их тут же подхватывает и ставит на закачку.

Да пребудет с ним сила... и благословение Птаага!

вторник, 24 марта 2009 г.

Кризисные заметки - 3

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

Вообще-то это скорее всего мошенничество. Но милиция что-то дремлет.

Достали.

Наблюдение

Вчера начал знакомиться c Python. Любопытно. Но уж больно мне показалось поначалу, что на интерпретатор MATLAB похоже. Посмотрим...

понедельник, 23 марта 2009 г.

Кризисные заметки - 2

Недалеко от моего дома, около продуктового магазина, появились люди, которые торгуют всякой ерундой (типа прихваток, ножей, тройников и т.д.) Раньше там лишь изредка появлялись только бабушки, торгующие солеными огурцами.

На новом месте

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

Новыый адрес: blog.apalkoff.ru

Те, кто подписан через FeedBurner (http://feeds2.feedburner.com/apalkoff или, что то же самое, http://feeds.feedburner.com/apalkoff), вообще ничего заметить не должны. А тем кто забирает rss непосредственно, я рекомендую обновить подписку.

суббота, 14 марта 2009 г.

Джаз над Волгой - 2

jazz

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

1. "Standards III" Андрея Мартыненко (Ярославль/Москва/Киров)
2. Ансамбль "Круглый бенд" Алексея Круглова (Москва)
3. Дуэт Томаш Шукальский/Артур Дуткевич (Польша)

Первое отделение на этот раз тоже как-то не вдохновило. Состав фортепиано, ударные, контрабас. Мне показалось, что музыканты неважно чувствуют друг друга. Создалось впечатление некоторого творческого хаоса. Каждый, по-моему, был занят позиционированием себя, а вместе получалось не очень... Ситуацию скрасили два саксофониста (один из которых был Christopher Peterman), которые сначала по очереди исполнили вместе с трио по стандарту, а потом уж и впятером сыграли блюз, завершивший первое отделение.

[20 грамм из фляжки Михаила А.]

Второе отделение было грандиозным. Никаких стандартов. Авторская, концептуальная музыка. Респект. В один момент выступления Алексея Круглова играл одновременно(!) на 3-х саксофонах. Как сказано на сайте коллектива: "Алексей Круглов – саксофонист, композитор, режиссер-постановщик. Развивает свои идеи в области нового искусства, разрабатывая авторскую систему воплощения художественных образов в звуковом пространстве. Являясь приверженцем авангардного направления, придерживается абсолютно четкого творческого пути в своей деятельности." Очень круто, одним словом.

[50 коньячку]

Третьим был польский дуэт. Саксофон и фортепиано. Сначала мне показалось, что как-то это скупо. Однако [20 грамм из фляжки Михаила А.] я все более и более проникался их творчеством и виртуозным исполнением. Получилось очень лирическое завершение концерта.

Сказалось ли, что это была пятница, или еще что. Но было ощущение общей синевы в публике. К окончанию второго отделения, казалось, что в зале приняли все (и немало). Некоторые заседали в буфете (хоть там и не транслируют происходящее на сцене), столы были сдвинуты. Алкоголь лился рекой. Душевно так :-)

PS Кстати, концерт совпал с 35-летним юбилеем ярославского джаз-клуба. Мои поздравления.

пятница, 13 марта 2009 г.

Кризисные заметки - 1

На улицах стало больше любителей стрельнуть сигаретку.

четверг, 12 марта 2009 г.

Джаз над Волгой

Все ли в курсе, что с 10 по 16 марта в Ярославле проходит традиционный фестиваль "Джаз над волгой"? Случается это, ежели кто не знает, каждый нечетный год и, с моей точки зрения, является крупным культурным событием, которое меня влечет к себе из года в год.

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

Сегодня в программе были представлены:
1. Капелла "Ярославия" под руководством Владимира Контарева (Ярославль)
2. Ансамбль Crazy Rhythm (Москва)
3. Ансамбль Soundcheck (Польша)

Не являясь большим знатоком джаза не буду приводить оценок. Расскажу про насторение. Первое отделение было вокальным. Капелла -- это вам не коллектив из 3-5 человек. Общее впечатление положительное, но не восторженное. Даже импровизированное вовлечение музыкантов из 3 отделения не заставила меня переменить отношение к хоровым коллективам. Хотя выступление было хорошее, что подтверждается хотя бы исполнением песни Moon River.

[50 грамм коньячка]

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

[50 грамм коньячка]

Поляки. Работали в штатах. Напряженная, но мелодичная музыка. Респект. Драйв.

PS на сейшн не пошли, рабочий день завтра...

четверг, 5 марта 2009 г.

Бесплатные СМС

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

воскресенье, 1 марта 2009 г.

Прощеное воскресенье

Ну простите меня, кто может... Ну не прав может бываю...

четверг, 26 февраля 2009 г.

Университетская газета мельчает?

Пришедши в университет сегодня обнаружил у себя на столе Университетскую газету, вероятно, заботливо оставленную мне коллегами. №4 февраль 2009.

Господи, о чем она? Раньше хоть интервью были какие-то с людьми ВУЗ'а, а сейчас собственных материалов равно 3 штуки. Остальное -- либо объявления (которых тоже, не сказать чтобы много было), либо перепечатки других изданий. Кроме того, в газете был замечен вкладыш размером ровно со всю газету, адресованный абитуриенту. Вот скажите мне, вам не кажется странно, что этот вкладыш, который "распространяется бесплатно среди студентов и сотрудников университета" вместе с газетой содержит указания когда и как поступать надо? Для кого это?!

Рассмотрим как все бездарно:
1. Безумны размеры "приглашения" в ЯрГУ. Его на стенку надо вешать?
2. Интернет адреса... Это тихий ужас. Вот вы абитуриент. Вам захочется набирать вот это чтоб ознакомиться с правилами приема? http://priem.uniyar.ac.ru/entrant/normative/prav_2009.pdf? Такая ссылка уместна в сети, но никак не в рекламе университета. Ну там, кстати, есть еще и покороче ссылки.
3. Крупно написано, что "можно подавать документы сразу на НЕСКОЛЬКО специальностей или направлений" (и это хорошо), тут же указано, что при этом надо иметь "НЕСКОЛЬКО комплектов документов". Абсолютное безумие, основанное на неправильном процессе и бюрократии.
4. Там "дорожная карта" есть на целый разворот. Полезная информация для абитуриента. Только, должен заметить, обращаясь к авторам, что на стенку это никто вешать не будет...
5. "Сайт олимпиады" (а реально страничка), почему-то размещен на сайте Медицинской академии. А о том как результаты олимпиады будут учитываться там узнать нельзя, а надо обращаться в приемную комиссию, только не ясно ЯрГУ или ЯГМА.

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

воскресенье, 22 февраля 2009 г.

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

Вот возник законный и закономерный вопрос. В какой цветовой системе нужно обрабатывать и оценивать видеопоследовательности? Дело в том, что за время долгого отсутствия я таки разобрался как получать доступ к кадрам видео прямо из C#, используя DirectShow, да еще и показывая эту красоту в WPF.

Так вот, сейчас имеется доступ к данным в формате RGB24 к которому мы все давно привыкли (я имею ввиду PicLab2). Неясным остается нужен ли нам доступ к кадрам в формате YUV 4:4:4? Все в курсе, что видео как раз почти всегда хранится именно в последнем (или близком к нему) формате. То есть после декодирования видео мы будем получать еще одно искажение, связанное с переходом YUV->RGB. Это может замусорить, скажем, оценку качества работы видео-кодека. Или все же мы будем исходить из того, что отображается изображение все равно в RGB, хоть преобразование и делается средствами акселерации видео карты?

Ваши суждения?

суббота, 17 января 2009 г.

Неньютоновская жидкость

Если вязкость жидкости зависит только от состава и температуры, то такие жидкости называют ньютоновскими. Это однородные жидкости.

А бывает жидкость неньютоновская... Внимание...



и еще



и там еще много чего

пятница, 16 января 2009 г.

Просмотр DirectShow графа

Использование GraphEdit для просмотра/создания графа воспроизведения в DirectShow позволяет просматривать не только отдельные графы построенные непосредственно в этой программке, но также и подключаться к отлаживаемому приложению для рассмотрения его внутреннего графа. Это делается с помощью комманды «File->Connect to Remote Graph...» В открывшемся списке выбираем строчку с идентификатором вашего процесса... и вуаля -- получаем граф во всей красе.

Ясное дело, что отлаживаемая программа должна для этого постараться и зарегистрировать свой граф в ROT. Но об этом в другой раз как-нибудь.

Так вот сейчас выглядит граф, который строится внутри «Piclab 3 Старт».



И все бы хорошо, но под Vita это все не работает. Хотя решение имеется и не очень сложное.
Нам понадобится Windows SDK. Кстати DirectShow SDK входит сейчас в состав как раз этого продукта, а не DirectX SDK как это было раньше. Так вот, дело в том, что в Vista некоторый функционал из quartz.dll был перенесен в proppage.dll, которая по умолчанию не зарегистрирована в системе.

Для регистрации открываем коммандное окно, переходим в папку bin внутри SDK (например C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\) набираем комманду regsvr32 proppage.dll. После этого появится окно, в котором будет сказано насколько успешно была проведена операция.

Теперь можно насладится приятностью отладки графов и под Vista.

воскресенье, 11 января 2009 г.

День синергетики

Ну что же? Настала пора объявить о пришествии очередного (уже традиционного) дня синергетики. Хочу сказать, что он состоится завтра (12.01.2009) в понедельник во второй половине дня (ближе к вечеру). Время, ясное дело, не обозначено. Потому что день синергетики, он и есть день синергетики, т.е. самоорганизации ;-) Место тоже известно, хоть и не определено. 309.

Так что предлагаю всем отметить этот светлый день небольшими посиделками :-)

четверг, 1 января 2009 г.

С Новым 2009 годом!

Желаю всем идти вперед и делать то, что считаете правильным. Мою мысль подчеркнут слова Фрэнка Синатры:



And now, the end is near,
And so I face the final curtain.
My friends, I'll say it clear;
I'll state my case of which I'm certain.

I've lived a life that's full -
I've travelled each and every highway.
And more, much more than this,
I did it my way.

Regrets? I've had a few,
But then again, too few to mention.
I did what I had to do
And saw it through without exemption.

I planned each charted course -
Each careful step along the byway,
And more, much more than this,
I did it my way.

Yes, there were times, I'm sure you knew,
When I bit off more than I could chew,
But through it all, when there was doubt,
I ate it up and spit it out.
I faced it all and I stood tall
And did it my way.

I've loved, I've laughed and cried,
I've had my fill - my share of losing.
But now, as tears subside,
I find it all so amusing.

To think I did all that,
And may I say, not in a shy way -
Oh no. Oh no, not me.
I did it my way.

For what is a man? What has he got?
If not himself - Then he has naught.
To say the things he truly feels
And not the words of one who kneels.
The record shows I took the blows
And did it my way.


Yes, it was my way.