Добавление темы в WPF контрол

Во-первых, для подключения ThemeManger-а к контролу, в конструкторе надо добавить следующие строки:

public partial class AlarmsPage : UserControl
{
    public AlarmsPage()
    {
        InitializeComponent();

        ThemeManager.ApplyTheme(this, ThemeManager.CurrentTheme);
        ThemeManager.OnThemeChanged += (s, e) =>
        {
            ThemeManager.ApplyTheme(this, ThemeManager.CurrentTheme);
        };
    }
}

понятное дело, что этот код можно вынести в отдельный метод.

Continue reading

Использование ListView для отображения real-time данных.

Постановка задачи

В коде на C++ CLI есть массив vector<TNativeItem> содержащий несколько тысяч элементов и полностью меняющийся много раз в секунду. Нужен WPF контрол, который будет его отображать. Предположительно ListView обращается по индексу только к видимым элементам (в отличии от DataGrid и TreeView), поэтому он наилучший кандидат. Нужно реализовать ICollection (или ICollectionView) который будет хранить элементы только видимого диапазона, остальные делать нулями, причем при выходе элемента за границы видимого диапазона элемент должен зануляться (см 1). Разбивать элементы на страницы (как это делает VirtualizingCollection) не надо, так как мы их не загружаем с удаленного севера в данном случае, а создаем managed обертки для C++ объектов. За счет этого при обновлении всего массива на C++, будет обновляться только видимый диапазон managed объектов, что позволит достичь приемлемой производительности.

Continue reading

Ограничения WPF DataGrid

Как работает стандартный DataGrid

DataGrid это обычный ItemsControl, который биндится к ICollection, подписывается на нотификацию об изменении коллекции INotifyCollectionChaged и на нотификацию об изменении каждого элемента INotifyPropertyChanged, таким образом, если у нас, например, несколько тысяч элементов в коллекции, то соответственно DataGrid подпишется на INotifyPropertyChanged несколько тысяч раз. Если говорить точнее, то DataGrid биндится к ICollectionView, но тем не менее, для DataGrid необходим доступ к  элементу коллекции по индексу (random access). DataGrid по умолчанию использует VirtualizingPanel для реализации UI Virtualization (создаются только видимые ряды), но Data Virtualization не поддерживается, это означает, что все данные должны сидеть в ICollection и биндится будут все элементы, независимо от того видимы они или нет (об этом много статей в интернете). DataGrid поддерживает сортировку и фильтрацию через ICollectionView, что удобно в тривиальных случаях.

Continue reading

Установка SSL сертификата на Ubuntu Server 12.04

После усновки сертификата в соответствии с http://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate получается вот такая штука:

dmitriano@london:~/temp$ wget https://pechat.developernote.com
--2014-07-02 16:54:42--  https://pechat.developernote.com/
Resolving pechat.developernote.com (pechat.developernote.com)... 127.0.0.1
Connecting to pechat.developernote.com (pechat.developernote.com)|127.0.0.1|:443... connected.
    ERROR: certificate common name `milomag.ru' doesn't match requested host name `pechat.developernote.com'.
To connect to pechat.developernote.com insecurely, use `--no-check-certificate'.
dmitriano@london:~/temp$ wget https://milomag.ru/administrator
--2014-07-02 16:54:50--  https://milomag.ru/administrator
Resolving milomag.ru (milomag.ru)... 127.0.0.1
Connecting to milomag.ru (milomag.ru)|127.0.0.1|:443... connected.
    ERROR: certificate common name is invalid (contains a NUL character).
    This may be an indication that the host is not who it claims to be
    (that is, it is not the real `milomag.ru').
To connect to milomag.ru insecurely, use `--no-check-certificate'.

Похоже wget и php curl не очень хорошо понимает multidomain certificates, см https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=447266. Если приписать commonName, то работает для этого commonName wget работает нормально, но при этом игнорируются 1.CN, 2.CN …

Continue reading

Методы оценки игр

Методы оценки игр бывают двух типов. Одни методы требуют специальной организации, чтобы можно было провести сравнения: например, можно изучить, как влияет на процесс обучения закрепление ролей за игроками (каждый геймер в течение нескольких сеансов сохраняет одну и ту же роль, затем начинает новую партию при тех же условиях); можно также изучить эволюцию притока информации получаемой геймерами в различные «узловые моменты» игры.

Прочие методы не требуют структуризации флеш игры. Они основываются главным образом на применении средств записи сеансов (магнитофон, диапозитивы, фильмы, телевидение). Оценка эффективности шедевра как средства подготовки кадров вызывает многочисленные трудности

Continue reading

Пузырьковая камера

Пузырьковую камеру можно назвать «антикамерой» Вильсона. В самом деле, если в камере Вильсона частица оставляет след из капелек жидкости в газе, то в камере Глезера — все наоборот, след состоит из пузырьков пара, плавающих в жидкости.

Быстродействующие пузырьковые камеры, работающие синхронно с ускорителями, стали популярными приборами во всех лабораториях мира. Возник даже термин — «физика на расстоянии». Ученые, работающие за много тысяч километров от крупнейших исследовательских центров, могут получать и исследовать снимки уникальных ядерных событий.

Continue reading

Надежные видеорегистраторы оптом от лучших производителей

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

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

Continue reading

Купить телевизор 3d LG и получить наслаждение – реальная мечта

Деловые, энергичные женщины стремятся жить в ритме больших перемен и интеллектуального самосовершенствования. Для повышения своего статуса в компании занимаются повышением квалификации, изучают иностранные языки, благоустраивают свои квартиры, приобретают стильную мебель и обязательно меняют старую бытовую технику.

Они принимают решение о том, чтобы купить 3д телевизор самой совершенной модели. Телефон, ноутбук, автомобиль должны «символизировать» соперницам об успехе и достатке. Любимый мужчина обязан понять, что женщина способна многого добиться сама, что она не нуждается в его деньгах.

Continue reading

Karos Online — совсем другая Lineage 2

Тысячи геймеров со всего мира уже оценили игру в стиле популярной и ставшей классической, LineAge 2 -  Karos Online. Отзывы о ней хорошие, так что попробовать рекомендуем всем заядлым игрокам. Не важно нравятся вам игры в стиле фэнтези или нет, тут как раз тот случай, когда стоит попробовать всем и каждому.

Жанр классического фэнтези будет популярен всегда, поэтому игра будет развиваться бурными темпами.

Сюжетная линия строится на том, что по древнему проклятию на волшебный мир Азмар опустится туман зла, свет погаснет и только смелый и настоящий герой сможет убрать угрозу. Быть может вы и есть тот самый герой? Не верите, так попробуйте свои силы. Спасать мир, пусть даже и игровой, это очень увлекательно!

Continue reading

Компилируем примеры по DirectX под VS2012

Сначала нужно скачать старый DirectX SDK (June 2010) и прописать к нему пути:

C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include;C:\Projects\Src
C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86

ну а потом открыть свойства файла *.tx и выбрать там вот это (вместо HLSL Compiler):

Continue reading

Как работает LiveZilla

Ну во-первых есть Windows-клиент который ходит по HTTP или HTTPS, в зависимости от его настроек, с такими запросами:

172.30.126.34 — — [14/Oct/2013:19:40:12 +0400] "POST /livezilla/server.php?acid=4b6f9 HTTP/1.1" 200 5 "-" "LiveZilla 3.3.2.0 [http://www.livezilla.net]"

а java-скрипт на сайте сообщает серверу о действиях клиента через HTTP, передавая адрес страницы на которую зашел клиент и что-то очень длинное:

5.138.171.102 — — [14/Oct/2013:19:43:07 +0400] "GET /livezilla/server.php?request=track&start=1381765384812&browid=79b0bb6e30&url=aHR0cDovL21pbG9tYWcu…

поэтому если клиент зашел на сайт по HTTPS, то скрипт LiveZillы всё равно будет общаться к серверу по HTTP.

Continue reading

Как сгенерировать SSL сертификат для Nginx под Ubuntu

Копируем конфигурационный файл openssl в какой-нибудь рабочий каталог:

cp /etc/ssl/openssl.cnf  .

и вписываем туда следующее:

[ req ]
default_bits = 2048
prompt = no
encrypt_key = no
default_md = sha1
distinguished_name = dn

[ dn ]
C = IE
O = AWMH
0.CN = slogpost.ru
1.CN = slogpost1.ru
2.CN = slogpost2.ru
... и так далее все домены
для которых будет использоваться сертификат

Continue reading

Публикация в WordPress через SSL (HTTPS) при помощи Windows Live Writer

Если в wp-config.php установлен следующий флаг:

define('FORCE_SSL_ADMIN', true);

и используется сгенеренный вручную сертификат, то Windows Live Writer выдаёт вот такую ошибку при подключении:

image

Интересно, что установка сертификата эту задачу не решает.

Continue reading

Купить Galaxy S4 в Красноярске

Модель Galaxy S4 внешне очень напоминает своих предшественников – модели S2 и S3, которые прочно завоевали симпатии пользователей и в свое время имели колоссальный спрос среди покупателей. Возможно, именно это и побудило конструкторов оставить смартфону прежний облик, чтобы привыкшие к предыдущим моделям любители смартфонов Samsung Galaxy приобрели и эту модель. Пользуется спросом Samsung Galaxy S4 и в Красноярске. Немало ценителей смогло найти в нем именно то, чего раньше не хватало в изделиях Самсунг.

Continue reading