среда, 17 октября 2012 г.

FitNesse + TeamCity = friends!

If you work with TeamCity continious integration and FitNesse testing framework, you probably will find this plugin useful.
What it does:
- integrates into your TeamCity server as new test runner;
- starts your Fitnesse tests during project build
- displays tests statistics and provide some useful information (URL to run the test manually and time spent on test execution).
Installation should be very simple and described here.

воскресенье, 5 августа 2012 г.

XAML: переходим между страницами по клику без code-behind

Итак, мы пишем .NET WPF приложение. В моем случае: Silverlight приложение для WindowsPhone. Представим ситуацию: по нажатию на одну кнопку нужно перейти на другую страницу приложения.
<Button x:Name="ToPageButton" Text="Move to other page!" />

Что делается в первую очередь? Правильно, на кнопку вешается event, а далее в code-behind пишется код перехода на новую страницу.

XAML:
<Button x:Name="ToPageButton" Text="Go!" Click="Button_Click" />
Code-behind:
private void Button_Click(object sender, RoutedEventArgs e)
{
    NavigationService.Navigate(new Uri("/SomePage.xaml", UriKind.Relative));
}

Как все это сделать проще и в одном месте (в XAML-коде)?

воскресенье, 29 июля 2012 г.

Velonotte Pietrogrado. Впечатления

"Буду краток" (с) :) И без фоток, бо не фоткал.
Намедни поучаствовал на 2й Петроградской велоночи, "академической", что значит - люди не просто выбрались покатушничать, а их еще просвещали историческими фактами о любимом городе.
В общем, так оно и случилось: с 0.00 до 4.30 на Дорожном Радио (84.5 FM) потоком лились комментарии о местах маршрута: Английская набережная, набережные Мойки и Пражки, проспект Стачек, Александрино и многое другое (сейчас я выспался - не упомню :)). Для удобства велопробега Администрация Санкт-Петербурга санкционировала перекрытие дорог по маршруту. Перекрытие было недолгим, ровно на то время, которое требовалось для того, чтобы вся эта толпа доехала от одного чекпойнта до другого. Автомобилисты, простите если что, но мы же так не каждый день собираемся %)
В общем, спасибо организаторам за подобное мероприятие. Да, было несколько "узких мест" (в которых народ не ехал, а шел пешком и матерился), но куда уж без них - мероприятие масштабное, 3000 человек. Единственное, Я БЫ ВЗЯЛ ВЕЛИК НАПРОКАТ (!!!!!!), если бы подумал заранее =\. Потому что в конечной точке его можно было сдать обратно, а дальше ехать домой на общественном транспорте. Но с другой стороны - сколько адреналина мотаться на своем железном коне всю ночь и все утро! :) Итоговый маршрут: Комендантка - Велоночь - Проспект Ветеранов - Комендантка, дочерта км (с непривычки :)) и бонус в виде персональной экскурсии по утреннему Петербургу, когда уже хоть что-то вокруг видно :). 
Ну, описание дороги домой - это уже отдельная история со своими событиями. А пока всё, всем здоровья и побольше необычностей по выходным!!!

понедельник, 23 июля 2012 г.

"1 окно", "22 окна" или работаем с числительными (.NET)

Вот потребовалось мне как-то в .NET-приложении показывать юзеру, что у него на странице было "38 посещений".
Сделал. Быстро, красиво, замечательно. Прибавил юзеру еще 3 посещения и увидел, что у него "41 посещений". Некрасиво, незамечательно. Хочется, чтобы в зависимости от некоего числа выбиралась корректная форма слова. В Django для таких дел существует pluralize. В .NET? /* пожал плечами */

Вопрос "Куда бы поехать?", ставший риторическим

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

В общем, мы с благоверной думали недолго :)

среда, 11 июля 2012 г.

Use PHP in right way, Luke!

На Хабре промелькнула новость про ресурс с подборкой best practices для PHP программистов. Отличная вещь, находится здесь!
Что порадовало - описание coding style guides и библиотеки стандартных классов и функций PHP (SPL). Для начинающих жизненно необходимо знать такие штуки, чтобы народ перестал унижать PHP :)
PHP - не бяка, а инструмент. Давайте сделаем его лучше!

суббота, 7 июля 2012 г.

Растягиваем ListBoxItem во всю ширину ListBox

Итак, в нашей жизни порой возникают ситуации, когда хочется что-нибудь взять и растянуть :). Допустим, ListBoxItem по ширине родительского ListBox'а в Silverlight-приложении для WindowsPhone.

воскресенье, 24 июня 2012 г.

Вебмастеру с WindowsPhone в помощь

Пользуешься Яндекс.Метрикой и WindowsPhone? Тогда пожалуйста инструмент в помощь! На данный момент приложение позволяет просматривать статистику по просмотрам, визитам, посетителям. Также показывает процент посещений, разбитый по странам/регионам и источникам посещений.
Да, пока немного, но это "затравочка", цель которой - собрать фидбэк, и после чего уж развернуться в полный рост! Так что пользуйтесь, критикуйте, пишите, вдохновляйте авторов! =)

среда, 4 января 2012 г.

Наступаем на грабли мобильной разработки, зарисовка №1

Итак, открываю цикл мини-заметочек, которые можно объединить одним словом "ГРАБЛИ". Грабли, на которые я наступил сам, или которые мне показались настолько красивыми, что грех ими не поделиться.
Сегодня имеем грабли с пользовательским мнением о нашем, опубликованным. Этот пост берет свое начало из предыдущего (про "Гороскоп" для Windows Phone, помните?).
Что мы имеем? Опубликованное 1 декабря простенькое приложение, которым люди пользуются, пользуются (за месяц более 1,5К скачиваний), радуются, позитивные фидбэки на мыло периодически шлют. Но мало кто отписывает хвалебные речи на Маркете. Стесняются, что ли?
Однако, стоило в начале января аппликухе пару раз как следует упасть (а падал наш веб-сервис, с которого телефоны пользователей забирали контент), и в течение 2 дней прилетает сразу 2 смачных плевка в карму на Маркете.
Какие выводы имеем?
1) Культивируйте у пользователя слать свои отзывы не только лично вам в фидбэк, но и на публичные ресурсы - например, в отзывы на Маркете. Личная статистика - это здорово, однако она ЛИЧНО ВАША. Пока слово "Спасибо" видите только Вы и никто другой - это просто слово "Спасибо", не делающее вам особой пользы.
2) Внимательно следите за работоспособностью сервисов. Они имеют вредное свойство падать в праздники/отпуски/ или еще когда, когда тебя, разработчика, рядом нет.
3) Организовать бэкап-контент раздачу, которая пару дней, но позволит на может быть и не актуальной, но информации, прожить без слива кармы.