пятница, 26 ноября 2010 г.

SVN pre-commit hook

задача. дано сервер на винде(хотя думаю это не принципиально) на нем VisualSVN. надо запретить коммиты с пустым логом.

решение. естественно нашел на просторах интернета:

"ПУТЬ К svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO OK
echo "Commit Comments are Required" >&2
exit 1
:OK
exit 0


* This source code was highlighted with Source Code Highlighter.

среда, 26 мая 2010 г.

Регулярные выражения

Очень понравилась статья, фактически это тот минимум, что надо знать для работы с регулярными выражениями. Правда в некоторых местах автор немного "ошибается" в описаниях, тут просто надо обратить внимание, что например на паттерн [^аеёиоуыэюя] будет матчится не только согласные, но и заглавные гласные, и цифры. в остальном статья просто супер!
ссылка

понедельник, 5 апреля 2010 г.

Eclipse: resource is out of sync with the file system

Эти заметки надо потом объединить в одну, под общим названием "Настройка Eclipse под себя".

Итак первое неудобство, после svn-update, ну или если файлы проекта изменились извне eclips-а при попытке открытия файла возникает сообщение
resource is out of sync with the file system...
бла-бла-бла, нажмите F5 для обновления
Мне лень постоянно нажимать F5 или Refresh Project...
Итак: идем Window->Preferences->General->Workspase интересует галка "Refresh automatically"
я заодно выставил и автосохранение перед сборкой.
и text file encoding - UTF-8

NB!: Да, кстати, не зря это всё в меню Workspase находится, при переключении на другой воркспейс эти настройки теряются.

суббота, 27 марта 2010 г.

В тему пятничного "ночного собеседования" ;-)

Очень понятное описание работы с INNER JOIN, LEFT JOIN, RIGHT JOIN
http://barulina.ru

вторник, 9 марта 2010 г.

Проблемы с Mindows Mobile(Media Player)

Перестал тут на моем Asus P535 запускаться Media Player, соответственно(по логике MS) звонки я слышать перестал(в место мелодии звонка только один короткий писк) оказалось
"Причиной того, что wmplayer.exe не запускается, является то, что в каталоге ApplicationData\Volatile скопилось более тысячи каталогов начинающихся с XMEI* - все удаляем - и Windows media player запускается, звонки работают."

Получается, что MS решили, что нефиг тысячу раз открывать плеер, на тысячу первый раз он отказывается работать

четверг, 25 февраля 2010 г.

.NET получить номер версии

Задача Visual Studio не совсем вменяемым на мой взгляд( с помощью честно стыренного где-то JS скрипта и post-build Event) изменяет номер версии сборки. И вот мне захотелось его где-нибудь отобразить. Например мне очень часто приходится встречаться с такой ситуацией: приходит пользователь, говорит: "У меня вот то-то и то-то в программе не работает, а у Васи/Пети/etc. - работает." Теперь ответ на такой вопрос скорее всего сведётся к следующему: "а какую версию используете? посмотри в заголовке окна(например),1.0.0.0, ага, а Вася с Петей и Etc уже давно перешли 2.12.365.98729, и там эта функциональность была реализована".

Короче гордиться особо нечем, всё как обычно до безобразия просто, даже глупо было гуглить такое:
System.Reflection.Assembly.GetCallingAssembly().GetName().Version.ToString(3)

* This source code was highlighted with Source Code Highlighter.

Да, совсем забыл, короче в этом примере мне надо вывести только 3 "разряда", номер ревизии врят-ли кого-то волнует

четверг, 4 февраля 2010 г.

Serialization .net( основные требования)

Всё чаще стал использовать XML не только как хранилище контента, но и для хранения настроек программ.
Сейчас после того, как очередной раз поймал InvalidOperationException при сериализации решил написать для себя список требований к объекту:
1) должен иметь атрибут
[Serializable]
* This source code was highlighted with Source Code Highlighter.
2)Должен иметь конструктор по-умолчанию(без параметров)

Из основного вроде всё, если вспомню чего, потом допишу.

теперь частности:
если необходимо сериализовать класс-наследник, то у базового класса надо с помощью атрибута XmlInclude перечислить ему(базовому) все типы наследников примерно так:
[XmlInclude(typeof(Information)), XmlInclude(typeof(Episode))]
public abstract class Element


* This source code was highlighted with Source Code Highlighter.

очень хорошо сериализуются коллекции, я использую List, но думаю и с другими проблем быть не должно.Вот пример списка, где в качестве типа T - абстрактный класс:
[XmlArrayItem(typeof(Information)), XmlArrayItem(typeof(Episode))]
public List<Element> Actions


* This source code was highlighted with Source Code Highlighter.
Просто указываем с какими элементами может иметь дело List