Мнение о книге "Эссенциализм. Путь к простоте"

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

Итоги года


Год был не скучный.



С точки зрения профессионального опыта, поучаствовал в разработке нескольких интересных проектов. Попробовал внедрять проектное управление не в своих проектах. Получил опыт экстренного найма персонала. С сентября по декабрь отдел разработки в Калуге вырос с двух до десяти человек. И это при том, что есть еще Питер и Москва (там, правда пока только аналитики, но все же), да и в январе выходят еще трое.
С точки зрения личной эффективности, мне кажется именно этот год можно считать первым, когда применяемая мной система уже кристаллизовалась, и подлежит в дальнейшем только доработкам по "принципу штанги".
С точки зрения преподавания (да, скучаю по этому делу), принимал участие в организации нескольких конференций, одну из которых проводили на базе Калуга-Астрал совместно с Microsoft. Провел несколько занятий в рамках внутреннего обучения для автотестировщиков. Заявился в качестве докладчика на несколько конференций на следующий год.
Но были в уходящем году и не очень приятные вещи, несколько человек меня сильно разочаровали. Были проблемы со здоровьем у членов семьи. Не успел вырубить весь лес на участке.
Но в целом год дал много возможностей и я надеюсь что лучшие из них я не упустил.
Всех с наступающим новым годом!

P.s. У нас сегодня на работе у большинства сотрудников отгул, в кабинете сидим я и Таня отвечающая за тестирование, да в соседнем кабинете три человека :) Так вот, не делайте так :)

DevOps — cкорость? Да, скорость

Если посмотреть на девяностые годы прошлого века, то они дали большое количество методологий (если кому больше нравиться фреймворков) разработки программного обеспечения: FDD (Feature driven development), Scrum, Rup, XP. Но самыми востребованными оказались не технические подходы, а ориентированные на людей. В 2001 году это все привело к появлению Agile-манифеста. Не надо нам качества, не надо нам поддержки изменений, дайте нам быстро то, на что можно посмотреть, а уж мы примем решение, что делать дальше. В настоящее время складывается ощущение, что социальные факторы себя исчерпали и для дальнейшего повышения скорости их уже не хватает. Подход, включающий не только «про людей», но и «про технологии», получил название DevOps. Давайте посмотрим на чем еще мы можем выиграть в скорости поставки полезности.

Продолжение статьи на Хабре.

Замена стандартной подсветки в TreeView

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

Интересно? Тогда идем под кат.



Первое с чего начнем, это с модели данных. Я особо усердствовать не буду и воспользуюсь, благо всего неделя до нового года, вот таким классом:
public class Model : DependencyObject
{
    public bool IsSelected
    {
        get { return (bool)GetValue(IsSelectedProperty); }
        set { SetValue(IsSelectedProperty, value); }
    }

    // Using a DependencyProperty as the backing store for IsSelected.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty IsSelectedProperty =
        DependencyProperty.Register("IsSelected"typeof(bool), typeof(Model), new PropertyMetadata(false));


    public string Name { getset; }

    public Model[] Children { getset; }

    public static Model[] DemoData
    {
        get
        {
            var result = new Model[1];
            result[0] = new Model() { Name = "Зима" };
            result[0].Children = new[] { new Model() { Name = "Декабрь" }, new Model() { Name = "Январь" }, new Model() { Name = "Февраль" } };
            return result;
        }
    }
}
Теперь переходим к разметке.
Добавляем в дерево загрузку данных:
<TreeView ItemsSource="{Binding Source={x:Static local:Model.DemoData}}">
Теперь убираем подсветку выбранной ячейки. Для этого меняем цвет фона выбранного элемента и цвет текста выбранного элемента:
<TreeView.Resources>
    <Style TargetType="TreeViewItem">
        <Style.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
        </Style.Resources>
        <Setter Property="IsSelected" Value="{Binding IsSelected}" />
    </Style>
</TreeView.Resources>
Теперь, чтобы не заморачиваться с DataTriger-ами добавим простенький конвертер:
public class IsSelectedToBrushConverter : IValueConverter
{
    static Brush HighlightBrush = new SolidColorBrush(Colors.LightBlue);

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        Brush result = null;
        if (value is bool && (bool)value)
        {
            result = HighlightBrush;
        }
        return result;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

Подключаем этот конвертер в ресурсы окна:
<Window.Resources>
    <local:IsSelectedToBrushConverter x:Key="IsSelectedToBrushConverter" />
</Window.Resources>
Все, осталось сделать HierarchicalDataTemplate, в котором будет подсвечивать только то, что нам нужно:
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
    <StackPanel Orientation="Horizontal">
        <Image Source="Images/snowflake.PNG" Width="20" />
        <TextBlock Text="{Binding Name}" Background="{Binding IsSelected,Converter={StaticResource IsSelectedToBrushConverter}}" />
        <Image Source="Images/snowflake.PNG" Width="20" />
    </StackPanel>
</HierarchicalDataTemplate>
Как все это выглядит, можно посмотреть в картинке из заголовка поста.

4 причины заказать качественную и стильную баню под ключ на сайте www.sddu.com.ua

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

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

Если речь идет о постройке бани, лучшего всего обратиться к профессиональным сотрудникам ООО «Современные Деревянные Дома». Здесь вам предложат услуги, которые отвечают всем возможным показателям качества.

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

Уверяем вас, баня из сруба, бруса или бревна – то отличный вариант для обустройства территорий, прилегающих к дому. Где еще можно отдохнуть и укрепить здоровье, как не в русской баньке или финской сауне?

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

Баня под ключ на сайте www.sddu.com.ua является выбором человека, который ценит качество исполнительной работы и разумные цены.

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

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

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

На основании каких причин стоит предпочесть ООО «Современные Деревянные Дома» другим компаниям данного направления? Перечислим несколько аскетов:

1.       Исполнительные сроки всегда совпадают с реальными датами сдачи объекта.

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

3.       Наша компания постоянно развивается. Мы точно знаем, что не подведем и не разочаруем своего заказчика, так как применяем современные технологии и опираемся на собственный опыт. «За плечами» наших специалистов огромное количество успешно реализованных проектов.

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

Источник: http://www.sddu.com.ua/ru/bani

О том, как можно генерировать локализованные версии справки

Данная заметка рассказывает о том, как можно генерировать локализованные версии справочной системы на основе нашего программного кода (в данном случае написанном на C#). Если кто-то знает более удобный способ - с интересом почитаю о нём в комментариях к этой заметке.

 Введение
Как известно, исходными данными для генерации справки являются XML-файлы, генерируемые MS Visual Studio. Эти файлы создаются в том случае, если в настройках нашего проекта, на вкладке Build установлена галочка XML documentation file. Эти же файлы используются технологией IntelliSense для того, чтобы выдавать всплывающие подсказки в редакторе кода, являясь весьма удобной и всеми нами любимой особенностью. 

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

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

Например, если целевой проект имеет имя HelloDocs, то для русской и английской версии справочной системы мы добавим в наш проект два новых решения - HelloDocs.Ru и HelloDocs.En (на основе шаблона Class Library). В этих проектах мы будем размещать все XML-файлы: в HelloDocs.En - англоязычная версия, а в HelloDocs.Ru - русскоязычная.
 
Затем в настройках обоих проектов следует указать один и тот же(!!!) каталог вывода: в настройках проекта, на вкладке Build в свойстве Output path. А для всех добавляемых (в дальнейшем) нами в эти проекты XML-файлов свойству Copy to Output Directory следует обязательно назначать значение copy always.

Вот пример исходного кода, определённого в составе файла Magic.cs проекта HelloDocs:

namespace HelloDocs {



    /// <include file='doc/Magic.xml'

    /// path='Documentation/Member[@Name="HelloDocs.Magic"]/*'/>

    public classMagic {

        /// <include file='doc/Magic.xml'

        /// path='Documentation/Member[@Name="HelloDocs.Magic.Foo()"]/*'/>

        public void Foo() { }

    }

}

Соответствующие ему XML-файлы с комментариями будут показаны ниже в данной заметке.
Обратите внимание на то, что в атрибутах file элементов include следует указывать файлы, размещённые не в каталогах локализованных проектов, созданных нами ранее, но файлы размещённые в директории, которую мы выше указали в качестве выходного каталога для локализованных проектов, добавленных нами. На данный момент в том каталоге ничего нет, но это временно, т.к. в процессе компиляции, нужные XML-файлы будут копироваться в тот каталог и Visual Studio найдёт их там в процессе сборки нашего проекта HelloDocs.

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


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


 
В проект HelloDocs.En добавим файл Magic.xml с таким содержимым:

<?xml version="1.0"encoding="utf-8" ?>

<Documentation>

  <Member Name="HelloDocs.Magic">

    <summary>

      The <c>HelloDocs.Magic</c> is super-class...

    </summary>

    <remarks>

      Late it will be very popularly :)

    </remarks>

  </Member>

  <Member Name="HelloDocs.Magic.Foo()">

    <summary>

      The super-method...

    </summary>

    <remarks>It does nothing still... :)</remarks>

  </Member>

</Documentation>

В проект HelloDocs.Ru добавим файл Magic.xml с таким содержимым:

<?xml version="1.0"encoding="utf-8" ?>

<Documentation>

  <Member Name="HelloDocs.Magic">

    <summary>

      Наш <c>HelloDocs.Magic</c> есть супер-класс...

    </summary>

    <remarks>

      Позднее он будет очень популярен! :)

    </remarks>

  </Member>

  <Member Name="HelloDocs.Magic.Foo()">

    <summary>

      Это супер-метод...

    </summary>

    <remarks>Пока он ничего не делает... :)</remarks>

  </Member>

</Documentation>

Не забываем для этих XML-файлов изменить значение свойства Copy to Output Directory, как было указано выше. Обратите внимание, что эти файлы имеют одинаковые имена и одинаковую XML-структуру. Различие состоит только в содержимом соответствующих XML-элементов (это важно!!!).

Теперь наше решение выглядит следующим образом:


XML-файлы, генерируемые Visual Studio на основе XML-файлов наших локализованных проектов теперь могут использоваться в Sandcastle для генерации конечной документации.

Если Sandcastle ещё не установлен на вашей машине, то теперь самое время это сделать. Для установки Sancastle требуются административные права. После установки, в перечне доступных типов проектов IDE появляется дополнительный тип проекта, при помощи которого можно генерировать справку для интересующего нас проекта. Добавим в наше решение новый проект, созданный на основе нужного нам шаблона и присвоим ему имя HelpDocs.Doc:




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



Интересующий нас формат справки указывается в настройках нашего Sandcastle-проекта:

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



На скрине красной линией подчёркнут английский текст нашего XML-файла. Теперь отключим сборку англоязычной справки и включим русскоязычную:




Затем в настройках проекта HelpDocs.Doc меняем свойство Help file language, выбрав в нём русскую локализацию (чтобы дополнительный текст, присутствующий в документации, был так же на русском языке):



Теперь снова запускаем сборку нашего решения и проверяем сгенерированный файл справки:



Как мы видим - теперь мы получили русский вариант справки. Т.о. при желании мы можем реализовать столько локализаций нашей справочной системы, сколько посчитаем нужным.

P.S.
В идеале, конечно же, было бы избавиться от необходимости переключения галочек и правки свойства нашего Sandcastle-проекта, путём создания такого проекта отдельно под каждую локализацию. Но проблема заключается в том, что в нашем исходном коде жёстко прописан каталог, в котором следует искать XML-файл.

Конечно, можно было бы решить эту проблему при помощи конструкций #if/#elif/#endif:

namespace HelloDocs {

#if ENU
/// <include file='Magic.doc.enu.xml'
/// path='Documentation/Member[@Name="HelloDocs.Magic"]/*'/>
#elif RUS
/// <include file='Magic.doc.rus.xml'
/// path='Documentation/Member[@Name="HelloDocs.Magic"]/*'/>
#endif
public class Magic {
#if ENU
/// <include file='Magic.doc.enu.xml'
/// path='Documentation/Member[@Name="HelloDocs.Magic.Foo()"]/*'/>
#elif RUS
/// <include file='Magic.doc.rus.xml'
/// path='Documentation/Member[@Name="HelloDocs.Magic.Foo()"]/*'/>
#endif
public void Foo() { }
}
}

Однако писать такие конструкции - процесс весьма трудоёмкий. К тому же, в случае добавления новой локализации придётся везде в коде добавлять дополнительный блок #elif, что может оказаться очень затратным по времени для больших и даже средних проектов.

Дополнительные ресурсы

Ряд причин заказать подарки на Новый год на страницах сайта chocoparadise.com.ua.

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

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

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

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

Вы всегда должны помнить о том, что в данной ситуации вы должны все помнить о питании именно поэтому необходимо начать сотрудничество с проверенными и надежными торговыми площадками.

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

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

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

Подарки на Новый год на страницах сайта chocoparadise.com.ua непременно понравится всем вашим друзьям и близким.

Ряд причин заказать подарки на Новый год на страницах сайта chocoparadise.com.ua:

1) Широкий перечень товаров;

2) Самые доступные расценки на весь ассортимент;

3) Индивидуальный подход ко всем клиентам;

4) Оперативная и надежная доставка.

Источник: http://chocoparadise.com.ua/podarki-na-novyj-god-2

4 причины купить самокат на страницах сайта самокат.укр

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

У нас вы с лёгкостью можете приобрести самокаты, велобеги, скейтборды, сигвеи, ролики, веломобили, причём на любой вкус и кошелёк. Поверьте, подобный подарок придёт по душе практически каждому малышу.

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

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

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

Купить самокат на страницах сайта самокат.укр – это взвешенное и правильное решение! Не беспокойтесь, мы приложим максимум усилий для того, чтобы малыш ваш остался полностью доволен новой игрушкой!

Учитывая тот факт, что на сегодняшний день в стране сложилась достаточно непростая ситуация, вас, скорее всего, интересует материальная сторона вопроса. Что же, в этом случае беспокоиться вам абсолютно не о чем.

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

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

Теперь мы хотели бы выделить 4 причины, согласно которым вам необходимо пополнить ряды наших заказчиков:

1.       Внимательный сервис.

2.       Доступные цены.

3.       Большой выбор.

4.       Разнообразные способы оплаты

Источник: http://самокат.укр