суббота, 26 декабря 2009 г.

Все не так просто с высотой комбобокса (WinAPI)

На днях пришлось добавить комбобокс в древнюю софтину с GUI на Win32 API. Комбобокс этот должен входить в состав диалога, описанного в ресурсах. Ок, мне оставалось только добавить код, наполняющий этот комбобокс, и обработчик выбора элемента.

Все бы хорошо, но выпадающий список не появлялся! При этом GetLastError() == 0 и SendMessage(..., CB_ADDSTRING, ...) != CB_ERR после предварительного SetLastError(ERROR_SUCCESS).

О-о-о... Мне стоило полтора десятка минут повозиться с этой ерундой, меняя стили, коды возврата на разные сообщения и т. д. и т. п., пытаясь заставить список выпасть, прежде чем я обнаружил, что значение высоты, указанное при декларации комбобокса в ресурсах определяет не только высоту непосредственно поля ввода, но и вместе с ним высоту выпадающего списка. Ох уж этот ужасный код, реализующий GUI на чистом Win32 API... :)

четверг, 17 декабря 2009 г.

Вот так метель!

Уверен, что сегодняшний день запомнится многим дончанам!


Великолепная метель сопровождала меня практически весь день. Давно погода не дарила такого ощущения бодрости и веселья - настоящая зима!


На трамвайной остановке скопилось довольно много людей в ожидании транспорта.
Буквально через 3-5 мин, медленно выезжая из заснеженного пространства, показался первый трамвай.


К первой паре прибыл почти вовремя, на вторую (из 3-го корпуса в 4-й) решил пройтись пешком, такую погоду нельзя пропускать!


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


Метель скрыла привычный вид из восьмерки на парк Щербакова.


Последняя пара окончена, пора домой. Разве не прекрасна такая погода? Идем пешком!




Настроение все более приближается к новогоднему :).




Я доволен своим статусом пешехода!






Транспорт на Ленинском стал, что поспособствовало увеличению количества пешеходов - длинная вереница бывших пассажиров растянулась от Южного до ул. Куйбышева.



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

P. S. Фото кликабельны.

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

OpenOffice 3.1 и буква "Й"

Интересное дело приключилось вчера, точнее ранним сегодня.

Наконец закончив писать пояснительную записку к одной из студенческих работ, заменив картридж в своем Samsung ML-2015, принялся печатать. Хорошо, что первыми были ведомости длиной в 1 страницу - буква Й не напечаталась (именно в верхнем регистре), шрифт - Times New Roman из msttcorefonts. Заменив шрифт на Nimbus Roman No9 L, удалось решить проблему, но слегка поехало оформление. Напечатать пояснительную все же напечатал, но единого приемлемого решения этой проблемы еще не найдено.

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

OpenOffice 3.1 и нумерование страниц

Казалось бы, что может быть проще?

Не читая справку, можно догадаться, что нужно добавить Header (в моем случае нумерацию нужно отображать сверху), а в него поле "Номер страницы" - и теперь все страницы нумеруются, но с 1. А если нужно, например, с 4? Отлично, ведь в свойствах поля есть Offset - выставляем 3 и... нумерация пропадает вообще!

Оказывется, Offset лучше не трогать. Вместо этого в свойствах первого параграфа установить на вкладке Text Flow чекбокс Breaks -> Insert, With Page Style, и установить Page Number скажем в 4. Теперь номер страницы со смещением отображается корректно.

воскресенье, 15 ноября 2009 г.

Compiz и воспроизведение видео

Недавно я писал о том, что при включенном Компизе при просмотре видео наблюдается эффект "как если бы рендеринг производился без двойной буферизации".

Чтобы решить эту проблему, мне тогда пришлось отключить все эффекты.
Сегодня случайно нашлось более преемлемое решение. Была активирована опция CompizConfig -> Utility -> Workarounds -> Legacy Fullscreen Support и артефакты исчезли. Теперь можно наслаждаться нормальным воспроизведением и классными эффектами.

UPD.

Весьма печально, но решение перестало работать. Тем не менее видео смотреть можно, хоть и заметны, если уж придираться, некоторые артефакты. От них можно избавиться, отключив Compiz. Хотя, я уже привык и особо не придираюсь к мелким артефактам, которые затмеваются гораздо более приятными выгодами использования Убунту.

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

Ubuntu, XSane и Mustek BearPaw 2448 TA Plus

Сегодня возникла надобность сосканировать документ.

Обнаружив XSane среди предлагаемых Убунтой по умолчанию средств и попытавшись его запустить, я столкнулся с ошибкой доступа к устройству. Радовало то, что модель сканера определилась верно.

После нескольких минут поиска вышел на эту страничку http://www.meier-geinitz.de/sane/gt68xx-backend/. Теперь все ясно, скачиваем A2Nfw.usb, помещаем его в /usr/share/sane/gt68xx/, запускаем XSane и радуемся удобному фронтенду для управления сканером, как по мне, так даже более удобному, чем под Windows. И хотя в комментариях к драйверу сказано "Works, but is slow", тормозов замечено не было, все работает корректно.

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

Hello, Ubuntu!

Ура, наконец-то закончена уборка и винчестер чист (ну, почти :)). Теперь руки развязаны и можно сделать то, что уже давно планировалось - поставить Убунту.

Первые впечатления об Ubuntu 9.10 самые положительные, а если учесть, что это еще и бесплатно... вобщем просто супер! :)

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

Мелкие проблемки:
  • файрфокс после обновления почему-то очень настаивал на своей перезагрузке, даже после оной - вылечилось переустановкой;
  • вторая проблемка скорее вовсе не проблемка, а просто моя неосведомленность - после установки MonoDevelop усердно искал где же там интеграция с SVN :) (на сайте моно лежит скринкаст, где разработчик умело тыкает в пункт меню решения ...Publish, но у меня нет этого пункта меню) - все оказалось как нельзя проще: следовало просто установить monodevelop-versioncontrol (VersionControl plugin for MonoDevelop) и нужное меню, а с ним и функциональность появились.
UPD.

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

Также определенное время заняла настройка look&feel. Зато сейчас у меня приемлемая тема и более приятные глазу шрифты (следует сказать, что и дефолтные тоже нормальные, но малость крупноваты).

Вот такие вот впечатления после первых полусуток использования новой Ubuntu 9.10.

И напоследок, скорость загрузки и завершения работы ОС действительно радует! :)

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

Семинар по CUDA

Еще относительно недавно у нас в университете проходил Software Freedom Day, где в числе выступающих я рассказывал, прерываясь на демонстрации красочного видео, о существовании архитектуры CUDA от NVIDIA, позволяющей загрузить GPU неграфическими вычислениями.

И вот в эту среду прошел семинар "Неграфические вычисления на графических процессорах", в рамках которого довелось рассказать о практике программирования с применением CUDA. Удалось рассмотреть довольно интересный вопрос оптимизации доступа к памяти GPU, предварительно предоставив материал справочного характера, необходимый для восприятия практических примеров.

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

Презентации к обеим событиям и примеры (решение с подробными комментариями) доступны по приведенным выше ссылкам.

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

The Tag Game

Еще весной этого года (где-то числа 26, март), в рамках инициативы по приобретению навыков совместной разработки, был начат проект "The Tag Game", или попросту "Пятнашки".

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

И вот сегодня было решено собрать ее и создать дистрибутив (пока только для Windows; Linux, а может и Mac - немного позже; приложение опирается на Qt, так что проблем быть не должно).

Итак, первая версия "Пятнашек" для Windows доступна отсюда (~4 Mb).

P. S. Исходный код открыт. Ссылка в Readme.txt.

суббота, 10 октября 2009 г.

Линковка библиотек

Маленькая заметка насчет линковки библиотек.

Уже не помню с каким тулсетом и в какой среде я тогда работал, но думаю неплохо отметить следующее.

Если, добавив в список зависимостей, скажем, libSomeLibrary.a, Вы получаете что-то вроде "libSomeLibrary.a not found", то стоит попробовать просто MyLib, без префикса lib и постфикса .a.

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

Alphaskins

Обнаружил в архиве учебных проектов весьма полезную вещь - Alphaskins (Alphacontrols).

Использовал я это дело на 3-м семестре для кастомизации внешнего вида VCL-ных контролов в среде C++ Builder.

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

воскресенье, 27 сентября 2009 г.

Еще одно применение GMail

Нужен аналог Dropbox?
Пожалуйста! Ящик от Google размером ~7 Гб всегда под рукой благодаря Gmailfs.

UPD.

Спустя несколько месяцев было замечено, что решение перестало работать: возможно Google решила пресечь нецелевое использование ресурсов или еще что-то произошло.

Хотя, возможно, сейчас все работает, но использовать данное решение полноценно так и не удалось. Впрочем, 2 Гб от Dropbox вполне хватает.

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

Знакомство с Прологом

Вчера занялся написанием лабы №2 по системам искусственного интеллекта, так как наконец-то была найдена IDE мегатурбопролог :) (отдельная благодарность Бориславу).

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

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

Поехали! :)

Итак, я решил создать свой блог!

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

Посмотрим что из этого выйдет :).