суббота, 31 декабря 2011 г.

Цитата дня

Ну для чего это всё? Это же нецивилизованно, зачем такими количествами? Как будто в последний раз. Мы что, из голодного края? Зачем же салаты-то целыми тазами? Это же нецивилизованно. Да ты пойми, мне денег-то не жалко......... Да и денег тоже жалко, понимаешь. Но главное, не ци-ви-ли-зо-ван-но......... Нет, ну оливье-то обязательно! Это классика. Как Новый год без оливье? Заливное? Настаивать не буду, но как вариант. Селёдочку под шубой? Пожалуй. Ну тогда уж сделай и котлетки. Икру, конфеты, хорошие орехи, свечи, ёлку, шампанское – это я всё куплю. Новые шарики на ёлку выберу. Гирлянда старая? Куплю новую. А ты ещё сделай такой салат из редечки, ну, ты знаешь. И тортик. Ну, такой, с глазурью, какой ты обычно делаешь. Только не делай его такой большой. Сделай его такой небольшой... А, без разницы?! Ну тогда побольше.
-- Евгений Гришковец

вторник, 27 декабря 2011 г.

Работа c PowerShell

Начали эксперименты по автоматизированному разворачиванию проектов на продакшен и тестовую среду.
В качестве основного инструмента выбрали скрипты на PowerShell. Как остальным незнаю, но мне пока нравится.

P.s. Стандартного удаленного рабочего стала на тестовом сервере перестало хватать (все ломанулись писать скрипты). Поставил RDS. Сервер перестал пускать вообще всех. Правда я молодец?

понедельник, 26 декабря 2011 г.

Цитата дня

Чем больше я использую статический анализ кода, тем больше удивляюсь, что компьютеры вообще загружаются.
-- Дейв Ревелл (Dave Revell)

пятница, 23 декабря 2011 г.

ItemSelector на базе AutoCompliteBox

У AutoCompliteBox есть существенный недостаток. Он предполагает (AutoCompliteBox, а не недостаток), что все данные в него уже загружены и осталось только выбрать. К сожалению в Silverlight при использовании RIA сервисов возникает проблема с объемом передаваемых данных. См. здесь.
Стоит задача, сделать компонент по функционалу похожий на AutoCompliteBox, но подразумевающий, что данные в него грузятся только после того, как пользователь введет часть названия объекта который ему необходим.

четверг, 22 декабря 2011 г.

Цитата дня


Не беспокойтесь, что ваши идеи украдут.
Если эти идеи хороши, вы должны вбить их людям в глотки.
-- Говард Айкен

Статья про дизайн WP7

Чтобы не потерять:
http://www.ixbt.com/soft/wp7-interface-donahue.shtml

Статья мне понравилась, в самом начале есть ссылка на базовый обзор по дизайну WP7.

Кстати, есть же еще хаб на msdn-е.

среда, 21 декабря 2011 г.

Какой тип приложения выбрать WPF или Silverlight

Последняя проблема которая была у нас в проекте на Silverlight возникала в связи с тем, что на сервер надо было отправить идентификаторы 50-100 объектов (в качестве идентификатора - Guid). И вступало в действие ограничение на длину web-запроса.
Также постоянно возникают проблемы с получением данных на клиенте. Из-за ограничений web-протокола единовременно можно передать порядка 2000-3000 простых объектов (например список подразделений), но если мы пытаемся получить сотрудников (ФИО, должность, отдел, цфо, территория и т.д.) то может сокращаться до 1000-1500.
Мы эти проблемы решаем, но приходится существенно править приложение внося дополнительные ограничения, постраничную загрузку и т.д.
В связи с этим:
1. Для приложений с которыми будут работать 1000+ пользователей и которым надо мало данных - Silverlight.
2. Для приложений с которыми будет работать целых 10-15 пользователей и которым нужны для обработки огромные объемы данных - толстые клиенты на WPF. 

Доклады с конференции Secure Software Development

По данному адресу доступны докладов конференции. Не забываем кликать на "Записи докладов".

понедельник, 19 декабря 2011 г.

Телефон и WP7

На выходных перепрошил свой HTC HD2 на Windows Phone 7. По первым впечатлениям нравится. Сегодня надо попробовать перепрошить на другую версию (на выходных не успел, т.к. нужен был телефон, а та прошивка встает только после WM 6.5, а после WP 7 - фиг).
Из того что не устроило - это неактивированность винды. Т.е. не работает Market Place. Попробую другую прошивку, и если будет та же байда, буду пытаться писать слезное письмо в Microsoft, с просьбой дать/продать ключик активации.

четверг, 15 декабря 2011 г.

Цитата дня

Всякий раз, когда два программиста встречаются для критического анализа своих программ, они оба молчат.
-- Алан Джей Перлис

понедельник, 12 декабря 2011 г.

Цитата дня

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

P.s. Кстати, предыдущий пост (с панорамой) был сотым. С чем я себя и поздравляю.

Аэропанарама

Взято у rccam. Просто не мог пройти мимо. Наслаждайтесь.

пятница, 9 декабря 2011 г.

Правильное выравнивание текста в AutoCompleteBox

Есть такой замечательный компонент в Silverlight-е, который во многих случаях намного удобнее Combobox-а, и называется он AutoCompleteBox.
Но с этим компонентом есть достаточно большое количество проблем. Основная - выравнивание длинного текста. О чем я? Вот смотрите:
Вроде все нормально. Но как только мы выберем строку и перейдем на следующий контрол:
Видите выравнивание какое неудобное? Как порешать эту проблему смотрим в далее...

среда, 7 декабря 2011 г.

Цитата дня

Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям.

-- Мартин Фаулер

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

О ссылках на сборки в .net

Сразу скажу, с проблемой столкнулся в Silverlight приложении, после того как решил проблему, с такой же ситуацией столкнулся Потапов Андрей, когда писал dll загрузки файлов в SharePoint. Поэтому решил отписаться, вдруг еще кому сэкономлю полчасика поиска.
Собственно проблема - делаем ссылку на внешнюю сборку,  из своей сборки. А потом, в приложении которое использует нашу сборку возникает непонятный Exception.

воскресенье, 4 декабря 2011 г.

Цитата дня

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

четверг, 1 декабря 2011 г.

Цитата дня

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

среда, 30 ноября 2011 г.

Горячие клавиши в Visual Studio

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

вторник, 29 ноября 2011 г.

Цитата дня

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

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

Entity Framework и проблемы со View

Как я уже говорил. сейчас активно используем Entity Framework. И сталкнулся с одной неожиданной проблемой при мапинге View из базы в модель.

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

Цитата дня

Если не возражаете, несколько следующих цитат будут от замечательного автора (кто бы, что бы там про него не говорил как человека), от Джоэла Спольски:

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

среда, 23 ноября 2011 г.

Цитата дня

Любая организация, которая сама не генерирует новые идеи, либо уже мертва, либо близка к этому.
-- Гради Буч

О том как в C# применить dynamic

Когда добавляли в C# слово dynamic видимо основное назначение было в интеграции с COM. Но оказалось, что его можно весьма неплохо применить и в других задачах.

воскресенье, 20 ноября 2011 г.

Цитата дня

Мысль разрушительна и революционна, губительна и ужасна, мысль безжалостна к привилегиям,
авторитетным организациям и привычным традициям. Мысль заглядывает в самую глубину ада и не испытывает страха. Мысль велика, стремительна и свободна; она — свет и верх торжества
человечества.
-- Бертран Рассел,
математик, философ, лауреат Нобелевской премии

пятница, 18 ноября 2011 г.

Цитата дня

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

Очередной сертификационный экзамен

Вчера (17 ноября) ездили в Специалист на очередной экзамен.
Я, Музыка Павел, Потапов Андрей, Супрун Ирина, Манухина Дарья.
Сдавали все разное, ну только мы с Андреем - 70-433:

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

вторник, 15 ноября 2011 г.

Анкета для работодателя

Уважаемый работодатель!

Увидел Вашу вакансию и понял, что она может меня заинтересовать. Однако прежде чем я приму ее к рассмотрению, прошу Вас заполнить нижеследующую анкету. Прошу Вас внимательно отнестись к ее заполнению: точное и аккуратное ее заполнение сэкономит и Ваше, и мое время.

АНКЕТА

понедельник, 14 ноября 2011 г.

пятница, 11 ноября 2011 г.

Цитата дня


Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
— Linus Torvalds

вторник, 8 ноября 2011 г.

О том, что надо лениться

Два примера, когда здоровая лень - это здорово!

Цитата дня

Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня.
— Larry Wall

Конверторы при Binding-е

Понадобился мне Binding к тексту TextBlock-а вот такого вида:
Text="{Binding Fields["Assigned To"].Value}"
Само собой, что это работать не будет. Как сделать чтобы работало? Смотрим далее.

понедельник, 7 ноября 2011 г.

воскресенье, 6 ноября 2011 г.

Цитата дня

Лучшие программисты не чуть-чуть лучше хороших. Они на порядок лучше по любым меркам: концептуальное мышление, скорость, изобретательность и способность находить решения.
— Randall E. Stross

Доступ к WorkItem через объектную модель

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

пятница, 4 ноября 2011 г.

Цитата дня

Обучение программированию не может научить быть экспертом, также как и изучение кистей и красок не может превратить кого-либо в художника.
— Eric S. Raymond

среда, 2 ноября 2011 г.

Цитата дня

Я всегда мечтал о том, чтобы моим компьютером можно было пользоваться так же легко, как телефоном; моя мечта сбылась: я уже не могу разобраться, как пользоваться моим телефоном.
— Bjarne Stroustrup

вторник, 1 ноября 2011 г.

А ты живешь именно так?


Цитата дня

Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard

Отложенная загрузка компонентов

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

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

понедельник, 31 октября 2011 г.

Цитата дня

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

Формат DataBinding-а

Все в курсе, что у string, есть замечательный метод Format? Если нет, то быстро смотреть в msdn.
Сегодня я просто хочу показать несколько забавностей, по биндингу с применением тех же строк форматирования.

среда, 5 октября 2011 г.

Цитата дня

Итак, сегодня начинаю писать большое, многопоточное приложение. В связи с этим сегодняшняя цитата:

Если кто-то считает, что многопоточность проста и понятна, убедитесь, что этот человек не принимает важных решений в вашем проекте. Если он их все же принимает – вы в беде!
-- Брайан Гетц (Brian Goetz) 

понедельник, 3 октября 2011 г.

Цитата дня

На классическую начальственную манипуляцию "Это надо было сделать еще вчера!" правильный ответ звучит так: "Значит сегодня уже поздно? Можно расслабиться?!"
-- Неизвестен

воскресенье, 2 октября 2011 г.

Я не имею возможности принять Ваш отказ

Что то пробило меня последнее время на статьи про поиск персонала, и нашел вот такую прелесть:

Курсы в Специалисте по SharePoint-у

Итак, отучились в рамках вебинара на следующих курсах:
1. Настройка и управление Microsoft SharePoint 2010
2. Проектирование и развертывание Microsoft SharePoint 2010
3. Разработка приложений Microsoft SharePoint 2010
Несколько впечатлений ниже.

Цитата дня

Если человек ничего не делает за оклад, то сколько он сделает за два оклада?
Ничего Х 2= Ничего!!!
--  аноним

пятница, 30 сентября 2011 г.

Цитата дня

Наиболее важные решения — это не то, что вы делаете, но то, что вы решили не делать.
-- Стив Джобс

четверг, 29 сентября 2011 г.

Как проходить собеседование

У меня есть пара забавных лекций, о том как писать резюме и как проходить собеседование. Но как же я был в них неправ! Вот как надо отвечать на вопросы HR-ов! Интересно? Читаем далее.

вторник, 27 сентября 2011 г.

Не будите спящего программиста

Я давно знал, что у программистов должны быть тихие места, что их нельзя отрывать во время работы, но это просто шедевр. Все просто и понятно! Именно этой аналогии и не хватало, чтобы любому объяснить, почему нельзя "будить" программиста.

Итак, если кто не увидел ссылку выше, то: не программисты идем сюда, а программистам приятных снов.

Цитата дня

Мозговые клетки развиваются в ответ на сильные желания. Где нет желания, там нет и развития.
-- Орисон Марден

Трехуровневое приложение за 30 минут

Вчера показывал как создать трехуровневое приложение с транспортом на web-сервисах. Времени заняло это ровно 30 минут, вместе с объяснениями. Так как возник вопрос: а есть ли этот пример в блоге? Решил его добавить.

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

Цитата дня

«Если вы достаточно безумны, чтобы заниматься делом, которое любите — вы обречены прожить жизнь, полную смысла»
-- Герберт Келлехер.

среда, 14 сентября 2011 г.

Цитата дня

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
— Linus Torvalds

вторник, 13 сентября 2011 г.

День программиста и мысли по поводу

Действительно, всех с Днем программиста! Поменьше багов, побольше моральной удовлетворенности и денежной мотивации, ну и исполнения всех желаний.

Цитата дня

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

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

Обучение по SharePoint

Сегодня первый день учились по установке и настройке SahrePoint. Учимся все в том же Специалисте, в режиме вебинара.
Поделюсь первыми в печатлениями:

суббота, 10 сентября 2011 г.

Model-View-ViewModel

Про MVVM хотел рассказать давно, но когда сам с этим разбирался, не было времени. Сейчас перешли с WPF на Silverlight и в процессе столкнулись с рядом отличий между этими двумя технологиями разработки пользовательских интерфейсов. В связи с чем кое что приходится  писать заново. Поэтому начиная с этой статьи попробую рассказать про этот паттерн и особенности его применения в Silverlight.

пятница, 9 сентября 2011 г.

О мотивации

«Как мотивировать себя что-то делать? — Да никак, оставайтесь в жопе!» (с) Артемий Лебедев
Ну и видео на эту тему, тоже посмотрите:

Цель и задача коммуникаций

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

воскресенье, 24 апреля 2011 г.

Очередной сертификационный экзамен

В субботу (24.04.2011) сдавали экзамены в Специалисте. Как всегда организация процесса на высоте. Единственно, в аудитории было жарко (все предыдущие разы, было холодно, что, на мой взгляд, комфортное). И в связи с этим было не очень.
Сдавали 70-505 по Windows Forms. По моему ощущению он намного проще, чем по WPF. Сдали (я, Павел Музыка, Андрей Потапов) успешно.
С нами, на свой первый экзамен (70-536) ездили Ирина Супрун и Михаил Кисленко. Сдали успешно, с чем я их и поздравляю.

воскресенье, 20 марта 2011 г.

Показ разных кнопок в зависимости от наличия картинки

Название получилось какое то корявое, но я над ним еще подумаю. А задача весьма простая.
Итак, дано:
Есть класс, который является источником данных для кнопки. У класса есть два свойства: заголовок и картинка. Если картинка отсутствует, то показывается обычная кнопка с текстом. Если картинка задана, то показывается кнопка с картинкой, а заголовок становится tooltip-ом. Вроде все просто.
Итак начнем.

воскресенье, 13 февраля 2011 г.

Экзамен 70-502 и обучение в Специалисте

Предыдущие 4 дня провел в Москве, учился на "6460 Visual Studio 2008: Windows Presentation Foundation" и сдавал экзамен 70-502 "TS: Microsoft .NET Framework 3.5, Windows Presentation Foundation Application Development".


вторник, 8 февраля 2011 г.

Региональные настройки в WPF

Столкнулся с проблемой биндинга дробных чисел в WPF. Суть: есть TextBox, свойство Text которого через биндинг связано с полем типа float/double. При неаборе числа вида "23,4" (через запятую), запятая исчезает и в число записывается 234. Если писать через точку, то все нормально. В региональных настройках стоит в качестве разделителя запятая.
Решается принудительным переопределением LanguageProperty для всех элментов управления.

FrameworkElement.LanguageProperty.OverrideMetadata( 
    typeof(FrameworkElement), 
    new FrameworkPropertyMetadata(
        XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)
)
); 
 Но странно, почему это не сделано по умолчанию.

пятница, 28 января 2011 г.

Snippet для Dependency Property

Набирая каждый раз сниппет для Dependency Property, я раздражался из-за двух вещей:
1. Необходимость указывать класс в котором объявлено свойство (я в курсе, что там можно писать любой класс, и даже в курсе того, зачем это нужно, но часто вам приходилось писать там класс отличный от текущего?).
2. То, что написав свойство, приходилось возвращатся и дописывать к нему коментарий.
Аж, прям, бесило... Поэтому:

среда, 26 января 2011 г.

О Visual Studio и удостве работы

Так, срочно! Открывам VS. Tools -> Options... В списке выбираем Fonts and Colors, и в качестве шрифта устанавливаем Consolas.
Сделали?
Правда классно получилось?

суббота, 15 января 2011 г.

Построение меню на основе иерархических данных

Столкнулся с проблемой: есть структура данных в виде иерархического дерева. Необходимо показать эту структуру в виде главного меню формы.