February 2012 Blog Posts

.NET Framework 4.5 & Windows XP

25 February 2012 |

Microsoft планирует поддерживать Windows XP до конца 2104 года, возможно продлили/продлят (http://windows.microsoft.com/en-us/windows/products/lifecycle). На бытовом уровне поддержка означает что продолжается выпуск обновлений связанных с безопасностью. Для общего развития IT важен момент, когда компания (Microsoft) прекращает тестировать на совместимость свои новые продукты и этот момент уже наступил.

Отказ от старой ОС и переход на новую происходит болезненно для разработчиков ПО, если значительная часть бизнеса продолжает пользоваться “устаревшей” ОС. Разработчик оказывается между двух огней, с одной стороны заказчик, который говорит у нас XP и на нем должно работать с другой Microsoft, который говорит у нас новая версия браузера или .NET Framework 4.5, но XP не поддерживается.

Когда вышел .NET Framework первые версии, была достаточно распространена Windows98, заказчику было важно чтобы разрабатываемое приложение на ней работало… много сил/времени было потрачено на поддержку этой ОС, но к концу разработки ПО выяснилось, что Widnows98 не так важно, мало осталось.

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

Фильм: Рай и Ад

20 February 2012 |

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

Фильм “Рай и ад”, Акиры Куросавы

Фильм кажется несколько занудным и надуманным, так оно и есть. Есть такой прем экстремумов, когда вопрос ставят ребром, либо то либо это... Каждый в фильме увидит свое,... странный немного фильм, он не понятен большинству людей. В нем есть очень глубокая мысль, "бизнес меняет людей" действительно меняет и меняет очень сильно, меняет медленно, последовательно, такие трагедии/драмы происходя редко, потому что бизнесом занимаются плохие люди (те же что политикой). Как фильме, в жизни как таких бизнесменов не бывает, ни один не согласиться стать банкротом ради жизни одного да и даже ради жизни многих. Талантливым сильным людям нет в этом мире трудно найти другой выход и они идут туда (в бизнес)... и в итоге “вливаются” в этот мир. Конечно каждый в фильме найдет что-то свое, какую-то свою идею, есть ощущение что для других идей слишком надуманно, а по качеству видно – не так плоско должно быть…

IIS 7.5 Windows Authentication

20 February 2012 |

Возможно баян, но было потрачено много сил. Не срабатывала Windows аутентификация для IIS, как это часто бывает делаешь все правильно, как надо… а оно раз и не работает. Появляется окошко куда можно ввести логин/пароль, вводишь, оно мигнет и опять появиться – вроде как неправильно ввел. Оказалось что это не баг, это фича, воспроизводиться если пытаться зайти с той же машины где находится IIS.

Системы Windows Server 2003 с пакетом обновления 1 (SP1) и Windows Server 2008 включают функцию проверки обратной связи, которая предотвращает атаки, основанные на отражении. По этой причине если полное доменное имя или пользовательский заголовок узла отличается от имени локального компьютера, происходит сбой проверки подлинности.

Способ 1. Указание имен узлов (предпочтительно при использовании проверки подлинности NTLM)

Не смотря на приведенную цитату, воспроизводиться и на Windows7.

Anonymous Types Distinct

10 February 2012 |

Вопрос, что данный код выведет на экран?

private class FakeClass 
{ 
    public int? One { get; set; }
    public int Two { get; set; } 
}
private static List<int> Items = new List<int>() 
{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
static void Main(string[] args)
{
    var q1 = from i in Items
             select new
             {
                 One = (i % 2 == 0) ? null : (int?)i % 2,
                 Two = i % 4
             };
    var q2 = from i in Items
             select new FakeClass
             {
                 One = (i % 2 == 0) ? null : (int?)i % 2,
                 Two = i % 4
             };
    Console.WriteLine("Total:\t\t{0}\t{1}", q1.Count(), q2.Count());
    q1 = q1.Distinct();
    q2 = q2.Distinct();
    Console.WriteLine("Distinct:\t{0}\t{1}", q1.Count(), q2.Count());            
    Console.ReadKey();
}

Почему так?

Because the Equals and GetHashCode methods on anonymous types are defined in terms of the Equals and GetHashcode methods of the properties, two instances of the same anonymous type are equal only if all their properties are equal.

Anonymous Types

Швейцар

09 February 2012 |

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

Швейцар. Заимствовано в XVIII веке из немецкого, вероятно, через польский язык. нем. Schweizer (польск. szwajcar) первоначально имело значение «житель Швейцарии». В те годы в Россию иммигрировало много швейцарцев. Исторически сложилось так, что работали они, в основном, привратниками, слугами в гостиницах. Поэтому постепенно термин «швейцар» из наименования этнической принадлежности стал названием профессии.

Википедия

37signals: почему в нашей компании нет менеджеров

07 February 2012 |

Появился перевод статьи Джейсона Фрида (Jason Fried) "Why I Run a Flat Company". Как всегда интересный контент от 37signals.

То что в технологии разработке программного обеспечения что-то не так, было ясно с момента её зарождения. Ответом индустрии были CASE системы и различные вариации о жестком регламентировании организационной деятельности начиная от постановки требований заканчивая реализацией. Не заработало. Искания решений шли параллельно в области организации/управления процессами и в методологиях проектирования. Различные CMM, ISO, прочие стандарты best practices. IDEF, OOП, компоненты, модули, сервисы, Web 2.0, облака и прочие разновидности серебряных пуль. Как результат методологии разработки программного обеспечения RUP, MSF, XP, SCRUM, и множество других. Не заработало, вернее говоря были успехи, но они не носили регулярного характера, само множество методологий об этом свидетельствует. Хронологически методологии развивались в сторону “демократизации”. Прошло достаточно много времени, но и сейчас разработка программного обеспечения больше творчество чем производство.

Ничто не заставит отказаться от попыток построить McDonalds по разработке программного обеспечения – флаг им в руки поезд на встречу. Нет сети ресторанов, но есть более или менее успешные ресторанчики с не масштабируемым подходом, яркий пример 37signals.

Такие мысли освежила прочитанная статья:

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

(37signals: почему в нашей компании нет менеджеров)

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

Работа Или Развлечение

05 February 2012 |

Чем работа отличается от развлечения? Физически ни чем, и там и там человек что-то делает, но субъективно значительно - эмоция разные. Так в чем же разница?

Посмотрим что говорит Википедия, определимся с понятиями:

"Работа — деятельность человека; направленная на создание ценностей либо на удовлетворение потребностей других людей." (http://ru.wikipedia.org/wiki/Работа)

 

"Развлечение — активная деятельность, в результате осуществления которой человек испытывает удовольствие. Развлечения бывают индивидуальными и групповыми и различаются по количеству участников действа и степени энергозатратности. Развлекательной может считаться любая деятельность, результатом осуществления которой является получение удовольствия." (http://ru.wikipedia.org/wiki/Развлечение)

Появился базис, осталось совсем немного: синтезировать из имеющегося, ответ на вопрос: в чем разница?

Ответов, естественно много, основная/определяющая разница: В работе важен результат в развлечении процесс.

Практический аспект, всей этой философии.

Вопрос: что важно работодателю в вашей работе? Ответ: результат
Что важно вам в работе? Ответ: процесса

Взрослые дяди с серьезными физиономиями могут сколько угодно говорить что вы должны быть нацелены на результат, что это важней всего, они не обманывают, просто забывают уточнить для кого это важней всего. Если вы хотите чтобы работа была развлечением и значит не напрягала а радовала – вам важен процесс. Похоже на конфликт интересов. Талант человека строящего бизнес как систему в способности сделать так, чтобы процесс от которого работник получает удовольствие в итоге приносил результат. Фразы типа: "На работе надо работать", "Что скажут то и будешь делать"... могут быть свидетельством кривости системы.