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

Немного ссылок о тестировании С++

Немного полезных ссылок про unit-тестирование C++

Кто такой хороший тестировщик?


Думаю, что вдогонку статье о разработчиках, нужно добавить что-нибудь интересное и для тестировщиков.

И какая удача, на глаза попалась статья о 10 причинах того, что вы не настоящий тестировщик (+ часть 2).
Так что я позволю себе, как и в прошлый раз, потренироваться в переводе, а заодно и переварить эти мысли. Перевод, как обычно, очень вольный (а местами и неполный) и по ходу повествования перемежается моими мыслями.

Итак, поехали.

Вы НЕ являетесь профессионалом, если:
  • Вы считаете, что тестирование – это не техническая профессия, и вы даже не пытаетесь понять код, который лежит в основе продукта.
Понятно, что разработчик должен уметь программировать, это его работа. Но и у вас, как тестировщика, должна быть возможность смотреть на  свой продукт изнутри, понимать, как изменения и исправления могут повлиять на работу или вызвать новые проблемы. Дни «черных» и «белых» ящиков сочтены. Вы можете не писать код, но пока вы не читаете код, большая часть исходных данных для настройки процесса тестирования будет вне зоны вашего внимания.
Это круто конечно, но сейчас, мне кажется, таких доскональных знаний от тестеров не требуется. В моей практике встречались ребята из отделов тестирования, обладающие знаниями в программировании (не «автоматизаторы»). Это действительно здорово им и разработчикам помогает. Но реалии таковы, что это уникумы и найти человека умеющего программировать на должность тестировщика очень сложно. И причин этому много. Я думаю, что это тема для отдельного обсуждения. Но что гораздо, на мой взгляд, важнее - это знания предметной области. Вот тут вы должны быть экспертом. Но мы отвлеклись, поехали дальше.

  • Вы не участвуете в процессе до тех пор, пока не получаете «по голове» готовым билдом с указанием «иди и проверь его».
Задумайтесь и ответьте себе на вопрос: Когда вы начинаете участвовать в процессе разработки? В теории мы должны начинать на этапе сбора и анализа требований, вместе с остальной командой. Но на деле, мы получаем очень мало информации ровно до того момента, когда получаем по голове первым билдом от разработчиков, желающих получить отзыв о том, что они наваяли.
Тут в оригинале идет предположение о том, что обычно у тестировщиков просто нет времени на то, чтобы тратить время на анализ. Я думаю, какая-то правда в этом есть, но чаще у тестировщиков просто не спрашивают их мнение. Будьте активней, добивайтесь участия в планировании функционала, обсуждении того, что и как будет делаться. Ваши знания нужны продукту!

  • Вы общаетесь с Заказчиком только тогда, когда служба поддержки просит вас воспроизвести багу.
Часть вашей работы – это проверка продукта на основе того, как он будет использоваться в продакшене, и поиск багов. Фактически ваша работа – это быть адвокатом Заказчика в команде разработчиков. Для планирования тестов и разворачивания окружения вам нужно понимать как, где и как продукт будет использоваться. Как вы будете это делать, если вы не будете общаться с Заказчиком?
Хочется отметить, что часто не только у тестеров, но и у разработчиков, аналитиков нет доступа непосредственно к Заказчику (в момент разработки продукта). Тут в качестве исходных данных могут выступить предыдущий опыт, общение с отделом продаж, анализ продуктов конкурентов.

  • Управление рисками для вас, это что-то из области страхования жизни.
На самом деле существует немного неоспоримых истин о тестировании. Одна из них - тестировщик никогда не будет иметь времени протестировать абсолютно все. Именно из-за этого, понимание основ управления рисками очень важно. Оно помогает нам правильно понять и расставить приоритеты. Что должно быть проверено в первую очередь, а качество чего можно оценить на основе результатов других тестов. Но, это только основная часть управления рисками. Другой, более интересной и не менее полезной является та, что напрямую даже не связана с тестированием! Каждый тестировщик знает, какие части его продукта подвержены большим рискам, части в которых больше всего багов и где команда срывает сроки из-за непредвиденных обстоятельств. Часть нашей работы как тестировщика, постоянно контролировать эти части и напоминать всей команде о них на всех стадиях нашего проекта.
По своему опыту скажу, что тестировщики, как правило, более пессимистичны при оценке сроков. Видимо это как раз и связано с тем, что они постоянно держат в голове все эти потенциальные проблемы. Точно на тему пессимизма :)

  • У вас нет плана как улучшить качество своего тестирования
Хмм, тут в статье мне как то не понравилось. Много воды. Имхо, надо просто читать больше книг по теории и практике тестирования. Общаться с коллегами из других компаний, перенимать интересный опыт. И постоянно смотреть на себя со стороны, пытаясь найти слабые места, которые можно улучшить. А пока у вас нет плана :) можете почитать о вреде тестирования и о градациях тестировщиков

  • Вы думаете, что ваша работа это писать, а потом запускать заранее определенный набор тестовых сценариев
В общем, это не так. От вас ждут много чего, например:
- анализ предполагаемой архитектуры вашего продукта
- анализ рисков на основе планов разработки и тестирования
- разработка инструментов автоматизации тестирования
- запуск тестов, но не только тех, что вы заранее описали
- анализ результатов тестов и прочей доступной вам информации для оценки текущего состоянии продукта
И так далее…

  • Вы считаете автоматизацию тестирования высокой наукой и планируете заниматься ей в будущем - на пенсии
Прекратите оправдываться на тему того, почему вы не используете автоматизацию. Автоматизация не является волшебной таблеткой, которая решит все ваши проблемы (не верьте рекламе). Но ее использование делает вашу работу эффективней.
Проблема в том, что многие тестировщики считают себя недостаточно продвинутыми в этом вопросе и просто решают, что не могут использовать автоматические тесты. Но это все равно, что использовать спички для освещения, вместо фонарика.
С чего начать автоматизацию? Возможно, вам поможет эта информация. На самом деле, я считаю, что автоматизацией должны заниматься не только тестировщики, но и разработчики.

  • Вы ставите свое эго превыше всего.
Хороший тестировщик – скромный тестировщик. Вы должны знать, как донести обратную связь и, что более важно, как получить обратную связь от команды и коллег.
Часто тестировщики очень расстраиваются, когда коллеги (особенно разработчики) высказывают мнение о качестве вашей работы, например, когда сами нашли баг, которые вы не нашли, или о тестах, которые не были запущены.
Многие тестировщики воспринимают это как персональную обиду, попытку подвергнуть сомнению их профессионализм. И отвечают неподобающим образом. Вы должны адекватно реагировать на критику от своих коллег. Никто не ожидает  того, что вы идеальны. Но они вправе рассчитывать на ваш  профессионализм и вашу адекватную реакцию на их мнение.

  • Вы не улучшаете свой набор инструментов
Задайте себе вопросы. Вы хорошо знаете те инструменты (утилиты), которые вы используете?
Что бы вам нужно было улучшить, обновить, попросить приобрести для того, чтобы улучшить качество вашей работы.
Тестирование это, без сомнения, мастерство (искусство, если хотите). И без правильных инструментов вам будет сложно создать требуемый продукт.

  • Вы думаете только о том, чтобы стать менеджером или уйти в другую сферу
Многие люди начинают заниматься тестированием, полагая, что это хорошая возможность уйти потом в разработчики. Другие просто не знают, что такое тестирование и думают что это просто «игра» с приложением целыми днями. После этого наверно трудно хорошо работать…
Часть их них становиться хорошими тестировщиками, но большинство в конечном итоге разочаровываются и считают дни до того момента, когда они смогут заняться чем-нибудь другим. Многие не понимают всю мощь и силу тестирования и думают, что единственный путь двигаться дальше - это начать управлять людьми.
Я думаю, что если вы постоянно думаете о чем то другом и не сфокусированы на том, как протестировать лучше, то у вас нет шансов стать профессионалом в этой области. Так что подумайте, на правильном ли вы месте и может пора подыскать себе более подходящее?


Хотите стать профессионалом? Начните смотреть на тестирование как на профессию
Первый шаг – начинаем рассматривать тестирование как нашу профессию.
Второй – посмотрите, чего вам не хватает, чтобы стать лучше? Что вы должны развивать? Как вам нужно подходить к работе и к взаимодействию с заказчиками и коллегами. Что мы должны сделать СЕЙЧАС для улучшения качества нашей работы.
Важно понимать, что изменение должно происходить изнутри, а не под воздействием какого-то указания сверху. И это не зависит от вашей текущей должности, начните с себя.

Вот так вот позитивненько :)

пятница, 14 декабря 2012 г.

Software Project Management Conference - 2

В этом году на SPM съездить не получилось. Жалею. В прошлом году мне понравилось.

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

Вика Придатко Про сердитого PM
Как обычно зажигательно, про общение HR и PM. Интересно :)

Было много докладов про Scrum.  Тема уже заезжена, поэтому сложно сделать интересный доклад. Если судить по слайдам, это получилось у Владимира Доброва с докладом "Типичные ошибки внедрения Scrum"

Почетное первое место занимает Макс Дорофеев. Менеджеры, цифры, сено, особая причина и модели (нет, не те про которые вы подумали :). Полный треш (18+) в докладе "Гигиена количественного управления". Макс уже сделал слайдкаст из своего выступления (часть 1, часть 2). 

среда, 12 декабря 2012 г.

Отзыв-конспект "Критическая цепь" Э.Голдратт

По наводке @pimenaus прочитал "Критическая цепь" Э.Голдратта.

Отлично. Читается легко.

Правильный отзыв читайте у pimenaus'а, тут просто конспект с умными мыслями из книги.

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

Сфокусированность
"Что такое в нашем понимании «сфокусированность»? Это принцип Парето. Сфокусируйтесь на двадцати процентах важных проблем, и вы получите восемьдесят процентов выгоды. Это статистическое правило. Но те, кто преподают статистику, знают, что правило «двадцать на восемьдесят» применимо только к системам, состоящим из независимых переменных. Оно применимо только к миру затрат, где каждое звено управляется индивидуально... Поскольку наши организации состоят более чем из пяти звеньев, очевидно, что улучшение двадцати процентов цепи означает, что многие из этих улучшений не внесут вклад в улучшение организации как целого."

Алгоритм поиска того, на чем надо сфокусироваться:

  1. НАЙТИ компонент-ограничение системы.
  2. Решить, каким образом МАКСИМАЛЬНО ИСПОЛЬЗОВАТЬ компонент-ограничение системы.
  3. ПОДЧИНИТЬ все остальное принятому решению: бессмысленно развивать остальные части системы, если они зависят от того компонента, который является ограничением
  4. РАЗВИТЬ (расширить) ограничение системы: сделать так чтобы оно перестало им быть или уменьшить его влияние

"сфокусированность и процесс непрерывного улучшения — это одно и то же."

Оценка сроков или почему "5 + 5 = 13"
"большинство людей ведут себя в соответствии с тем, как измеряется их деятельность"
"Основное влияние на оценки по времени оказывает то, насколько сотрудник опоздал с завершением задания в прошлый раз"

Три механизма того, как подстраховка закладывается почти в каждый элемент проекта:
  1. оценка по времени основана на негативном опыте и оказывается в конце кривой распределения вероятности. 
  2. чем больше уровней менеджмента вовлечено в оценку по времени реализации проекта, тем выше окончательная оценка, так как каждый уровень добавляет свою подстраховку. 
  3. те, кто делают оценку, закладывают дополнительную подстраховку от глобального «урезания». 
Если суммировать, получается, что подстраховка составляет большую часть предполагаемого времени реализации проекта.

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

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

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

Как предлагается решать все указанные выше проблемы планирования, используя понятие критической цепи ?
  • Оценки с вероятностью 50% как правило достаточно при составлении плана
  • Резерв времени создавайте в виде буфера в конце критической цепи и контролируйте его изменение.
  • При параллельных ветках задач используйте буферы в местах слияния с критической цепью. Они также должны контролироваться.
  • Важный элемент - буферы ресурсов, которые защищают от недостатка ресурсов.

Чистую теорию можно почитать здесь. И пару раз перечитайте книжку :)

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

вторник, 11 декабря 2012 г.

Отзыв-конспект "Вверх! Практический подход к карьерному росту"

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

Книга больше для руководителей, настоящих и будущих, но можно найти много полезного не только им :)

Тезисы:

Про собеседования.
"Средняя эффективность интервью в предсказании последующей эффективности кандидата -7% ...Один из самых надежных способов - проверка истории кандидата по рекомендациям. Но он тоже не идеален."
Интересная статистика. Но вот рекомендации... Интересно, это работает у нас? Если не считать рекомендации знакомых.

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

Будьте честны и реалистичны на собеседовании.

Как в итоге принять решение о кандидате? Инна приводит интересное мнение пилота авиакомпании United, с которым вместе училась на MBA.
"В конце из длинного списка остается пара человек, у которых примерно одинаковое количество часов вылетов, лет выслуги и формальных навыков. Окончательный выбор определяется тем, кому ты больше доверяешь в кресле второго пилота и с кем можешь провести восемь часов в кабине". Хорошо, жаль у нас выбор не настолько богатый :)

Про переписку
"Если диалог требует больше трех вопросов-ответов или реально аргументированного спора, лучше назначить встречу". Да, согласен. Часто почта - это зло.

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

Книга не лишена юмора :)
Интересная история: система IBM AS400, которой занималась Инна еще работая в Москве, не принимала русскую букву "Х", считая ее за команду переноса строки.
Дальше по тексту "На мой запрос в лабораторию пришел ответ: А насколько важна буква Х в русской речи?" - "Примерно как f в английском!" :)

Советы, как правильно начать работать на новом месте:
 - Начать с отдыха (в оригинале "перекура", но не будем пропагандировать плохие привычки :). Имеет смысл взять несколько свободных дней до начала нового дела.
- Медленно запрягать: не спешить. Главное что следует понять - это в чем, собственно, состоит новая работа.
- Определить приоритеты
- Оценить политический ландшафт: составить список тех, с кем нужно поговорить, чтобы войти в курс дела.
- Быть готовым представиться, "рассказать кто вы, чем занимались раньше, что хотите сделать на новом месте"
- Инна рекомендует книгу Майкла Уоткинса "Первые 90 дней".
- Не переживать по поводу временных проблем, тех, что явно "рассосутся" через несколько месяцев

Еще один совет: "Иногда само ожидание препятствия заставляет нас замедлять ход, а предположение об открытой дороге впереди - увеличивать скорость"

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

"Человек, говорящий медленно, воспринимается как более уверенный в себе". Е-хе-хе, мне этому еще учиться, говорю быстро. Значит не уверен в себе? :)

Про выбор места учебы (про MBA)
"Дело не в самом образовании, а в том, что человек с ним делает."

Про достижение результата
"Становясь руководителем, вы начинаете добиваться результатов через своих подчиненных" (почти цитата)
"Случается, что не так важен результат, как велик ущерб по его достижению"
"Если вы совсем не совершаете ошибок, если вам всегда везет и все получается с первого раза, значит, вы не очень рискуете, упускаете возможность выйти за пределы своей зоны комфорта" - очень хорошо

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

Про карьеру
"Как состав не дойдет до пункта назначения без смены колес (имеется ввиду при пересечении границ России и Европы) так и многие карьеры не достигнут победного финала без периодической настройки стиля управления"
Сегодня человек сам несет ответственность за свою карьеру. Первое, что необходимо сделать для достижения успеха на этом пути - это осознать необходимость планирования карьеры.

В общем книжка на 4+, возможно я изначально был настроен на получение чего-то другого. А может не дорос еще. Надо будет перечитать через полгодика. Читается легко и приятно.

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

О справедливом Code-review

Начал разбирать свои favorites в твиттере.
Нашел очень полезные советы Саши Калугина о том, как проводить Code-review, объективно и справедливо.

Очень рекомендую

Часть 1
Часть 2


вторник, 4 декабря 2012 г.

Почему C++ возвращается... не возвращаясь?

C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, you blow away your whole leg!
— Bjarne Stroustrup
"Why C++ Is Not “Back”?" - отличная статья про то, почему нельзя назвать нынешнее положение дел с C++, его возрождением или возвращением.

Действительно, соглашусь с автором. Если немного остыть и подумать, то часто, после прочтения очередной рюшки из С++11 ловлю себя на мысли "ну наконец-то, теперь я могу это делать в С++". Хмм, это значит, что до этого я уже мог это делать в знакомых мне C# или Python. Звучит не очень...

Недавно, анализируя источники трафика к постам, обнаружил, что на один из постов шел активный трафик с rsdn. Выяснилось, что на форуме обсуждался вопрос "стоит ли учить С++".  А пост, на который в качестве доказательства необходимости изучения дали ссылку, это интервью Kate Gregory и Steve Tiexeira. Там они обсуждают о том, почему сейчас важно опять начинать работать с C++. 

Вопрос о том, нужно ли или нет учить C++, действительно интересный. Особенно с учетом этого:

"It seems that many of the seasoned developers have forgotten why we stopped using C++ and moved on to Java, C# and other modern languages."

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

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

Есть над чем подумать:
I held out for a long time trying to believe that all the investment I had made in C++ was not lost, but it turned out that C# simplified things to such a great degree that the extra power C++ gave me was not worth the extra responsibility.
В качестве бонуса, в статье есть отличный набор вопросов к собеседованию по C++
  1. Какие есть способы инициализации примитивных типов данных в С++?
  2. Почему деструктор нужно объявлять виртуальным?
  3. Что такое перегрузка (overloading) в C++?
  4. Какие примеру перегрузки вы знаете?
  5. Что такое кодирование имен (name mangling) в С++ и зачем оно используется?
  6. Что такое абстрактный базовый класс?
  7. Что такое RTTI?
  8. Как можно получить доступ к переменной, которая скрыта другой переменной с таким же именем? (тут похоже большое пространство для вариантов)
  9. Что такое namespace и для чего используется?
  10. Какая разница между классом и структурой в С++? А что в С?
  11. Что такое шаблоны и для чего используются?
  12. Что такое конструктор копирования, когда используется, чем отличается от оператора "="?
  13. В чем разница между shallow и deep копированием?
  14. Для чего используется const оператор?
  15. Передача по ссылке, значению, указателю - в чем разница?
  16. Когда можно, а когда нет возвращать результат по ссылке?
  17. В чем разница между переменными созданными в куче и на стеке?
  18. Как вы освобождаете динамически выделенную память для массива? Что будет если просто вызвать delete?
  19. Для чего используется множественное наследование?
  20. Чистая виртуальная функция - что такое?
  21. Для чего используется ключевое слово mutable?
  22. Для чего используется ключевое слово volatile?
  23. Что такое STL?
  24. Что такое vector?
  25. Что включает в себя <algorithms>?
  26. В чем разница между #include <iostream.h> и #include <iostream>?
  27. В чем отличие "++i" и "i++"?
  28. Что такое "быстрое сравнение" и как оно может быть использовано? В чем опасность?
  29. Что делает оператор ","?
  30. Что такое и как используется тернарный оператор?
  31. Что такое const для фунции-члена класса и как она может быть после этого использована?
  32. Использование try|catch в С++?
  33. Почему нельзя бросать исключения в деструкторе?
  34. Для чего используется ключевое слово explicit?
  35. Как правильно приводить к типу в С++?
  36. Для чего используется inline?
Но в конце концов, автор дает еще один плюс от изучения С++
If you can program in C++, you can program in any programming language.  If you understand how stack and heap memory work, pointers and references and all the low level details that make C++ so tricky, it will help you when you are working at higher abstractions and in understanding how computers work in general.
Дерзайте :) 

четверг, 22 ноября 2012 г.

There's No Such Thing As Software Productivity

Отличная статья "There's No Such Thing As Software Productivity"

Тезисы:
  • software development is not an activity that necessarily produces anything
  • what good software developers do is remove problems
  • you can't measure the difference in productivity between the good and bad developer is because there's nothing to measure
  • if we could solve the problem without making anything at all, anything that we actually produce is wasteful
Добавить нечего. Надо просто вбить себе это directly в мозг! Лучше гвоздями.

пятница, 16 ноября 2012 г.

Учиться нужно постоянно. "Не хватает времени" - миф!

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

Я уже писал о том, что задача технического специалиста постоянно развиваться (и о тестировщиках уже давно лежит драфт статьи, но как обычно "нет времени" ;) ).

Если ваши HR говорят что "мы их научим, а они уйдут", то воспользуйтесь подсказкой от Джоаны "подумайте, что будет если мы их не научим, а они не уйдут?" (xотя я это уже и раньше слышал ;) Или отправьте их на очередной IT Talk SPb, там Михаил Завилейский расскажет про мотивацию.

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

Так что "думайте сами, решайте сами" (с) уметь или не уметь :)

Список знакомых мне конференций на следующий год можно найти здесь.

Кстати, не стесняйтесь писать в комментах, куда еще можно сходить.

вторник, 13 ноября 2012 г.

Возвращение к C++. Небольшая подборка ресурсов по C++11

Соответствие студии стандарту C++11 Features в Visual Studio 2012 (там еще нет ноябрьского свежака)
Welcome back to C++ (Visual Studio 2012)

Herb Sutter Live: VC++ C++11 Conformance, isocpp.org, Standard C++ Foundation


Рекомендую к просмотру интервью с Herb Sutter.

Оооочень позитивный человек и зажигательный рассказчик.

Про что можно услышать в интервью?

Ты можешь участвовать в создании и обсуждении нового стандарта C++. Для этого нужно зарегистрироваться на сайте ISO CPP и вперед. Комитет ждет ваших предложений!

Герб показывает, что на самом сайте есть интересного (кстати прикольный touch-мониторчик он для этого использует). И там действительно много материалов! 

Фактически, это попытка создать индекс того, что сейчас есть в C++. Выглядит очень неплохо, заточено под чтение в offline (можно сохранить себе для дальнейшего просмотра). На моем Galaxy Note читается легко :)

Специальный раздел для Страуструпа: A Tour of C++. Главы из новой книги про С++11.

Про VC++: MS cтарается релизить новые вещи чаще (в свежем Visual C++ Compiler November 2012 CTP уже добавлены новшества в компилятор, но этот CTP не вошел в уже зарелиженный Update1). Подробности о Visual C++ Compiler November 2012 CTP здесь в блоге будут позже, тем кому не терпится сюда.

В очередной раз было сказано, что С++ это один из ваших инструментов, выбирайте инструмент соответственно вашей задаче.

Был вопрос об MFC - его по-прежнему развивают, добавляют возможности по взаимодействию с новыми UI фичами (XAML).

Casablanca - сделали поддержку VS2010

Кроме реализации ."then" как на уровне библиотек, так и стандарта, MS планирует реализовать await for C++ (это про асинхронное программирование)

Sutter напомнил про поддержку WinXP и возможность писать десктоп-приложения в Express студии.

C++ Foundation - trade association, объединяет крупнейших вендров продвигающих и использующих C++, "organized exclusively for the improvement of business conditions for C++ software developers".


Compile Time reflection
File System based on Boost.FileSystem v3


Хотят убрать страшные ошибки компиляции шаблонов.

Разработчики самой Windows вовсю используют C++11, в том числе и для драйверов.
Продолжается развитие инструментов студии для C++

Sutter: "C++/CX is basically C++/CLI" (37:50) и поведал про историю появления C++/CLI (был Longhorn - в нем managed ядро - нужен был доступ к нему из C++)

Garbage collector в C++? - Sutter "ЗА", но как дополнение, а не замена текущего управления памятью

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

Что именно запланировано? (это уже отсюда, слайды)

FileSystem Technical Specification(TS) - 2013
Networking TS1 2013, TS2 2014, TS3 2015
Transactional Memory (TM) TS 2014
C++14 minor release for C++ standard (2014)
C++17 major release, 2017

Блин, тут на VS2012 еще не успели перейти, а они уже до 17-го года напланировали...

Ну и напоследок: 
For any C++ compiler, conformance is your meat, platform support is potato. Everything else is gravy.

Андрей Бибичев "Гики против менеджеров -2"

Неожиданно философский доклад на IT-конфереции. Мне понравилось :)


Слайды можно найти здесь

Что именно понравилось:

  • Интересное физико-математическое доказательство наличия бардака везде :)
  • История про, как манера езды в пробках может служить критерием оценки на собеседовании
  • "Agile – это способ заменить насилие над личностью насилием над командой"
  • Что такое эффективный менеджер?
  • История про 6 HR-ов на 150 человек
  • Так нужны ли в итоге менеджеры
Потратьте час времени (начните с перелистывания слайдов), имхо оно того стоит.

Еще выступления Андрея (@bibigine)

воскресенье, 11 ноября 2012 г.

Как понять своего начальника или стать менеджером самому

Проект "Стратоплан.ру" сделал интересный бесплатный продукт 21 интеллект-карта для менеджера. Срок действия предложения только 7 дней!

Способ распространения конечно забавный (Мавроди нервно курит в сторонке ;), но организаторы оставили несколько лазеек, да  и честно найти 3 человека, которым эта тема была бы интересна, несложно.

Не знаю, как Слава с Сашей предполагали использовать 2 найденные мной видео по картам, но пользуйтесь пока не закрыто ;)
Видео 1 "Подготовка менеджера к своему собеседованию"
Видео 2 "План подготовки к решению проблем с людьми"

четверг, 8 ноября 2012 г.

IT-конференции в 2013 или где можно будет найти много IT-шников

Куда сходить, куда съездить, где поучиться в 2013?

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

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

Уже история (то что зеленое):
Test Automation Days
Новая конференция на популярную сейчас тему. До 1 января скидка. Курс гривны ~ 10 гр = 38 рублей. Итого около 3000р, если регистрироваться сейчас

План Б
Это конференция, на которой обсуждается все, что касается планирования проектов, продуктов и взаимодействия внутри команды на всех этапах. Регистрация открыта. 23 февраля 2013, Санкт-Петербург. В прошлом году было интересно. В этом тоже неплохо.

PyCon.Russia
Русская версия знаменитых ежегодных PyCon конференций. 24-25 февраля, Екатеринбург. Я так понимаю было интересно.

Microsoft Secure Software Development
MSSD-3 — третья по счету конференция, посвященная всестороннему обсуждению популярной и важной темы – минимизация уязвимостей программного обеспечения при его разработке. Регистрация открыта. 5 марта 2013, Москва.


Agile Days
по названию понятно про что :) 29-30 марта Москва, стоимость участия от 16500 до 26500 (в зависимости от даты оплаты)
Презентации с конфы 2012
Мой отчет с конференции 2013

Code Fest
По отзывам (сам ни разу не был) одна из самых прикольных конференций. 30-31 марта, Новосибирск.

Software People 2013
10-11 апреля, Москва
Судя по отчетам было интересно, один из лучших можно прочитать здесь. Презентации докладов уже доступны
Мой отчет с Software People 2012

ПрофсоUX – главная питерская конференция о юзабилити, UX и создании цифровых продуктов, ориентированных на человека. 18 мая 2013, Санкт-Петербург.

DevCon 2013
29-30 мая, окрестности Москвы. Ежегодная конференция по разработке и тестированию ПО – состоится 29-30 мая в Подмосковье в традиционном загородном формате. Конференция ориентирована на профессионалов в области разработки ПО, специалистов по тестированию, архитекторов, руководителей групп разработки, а также экспертов ИТ-индустрии.
Регистрация открыта уже закрыта, мест нет, только лист ожидания.
Мой отчет с конференции DevCon 2012.
Видео докладов DevCon 2013

Для фанатов С++.  США, Aspen, Colorado, 12-17 мая. Регистрация уже открылась. Ранняя цена 599$ (до апреля), но конечно перелет и проживание будет недешево. Зато круто, завидую тем у кого будет возможность поучаствовать :)
Презентациивидео 2013.

ADD-4
ориентировочно апрель/май Подробностей пока никаких. В 2012 году стоило 8000-12500 (в зависимости от даты оплаты)
Подробности про конференцию 2012 года.

TechEd Europe 2013
Madrid, Spain, 25 - 28 June. Уже открыта регистрация.
Мой отчет с конференции 2012 года. Стоит недешево (около 2000 евро + перелет и проживание), но разница между содержанием программы TechEd Russia и Europe того стоит.

ESEC/FSE 2013
Официальный сайт. 21-23 августа, Санкт-Петербург. Новость о конференции здесь. Раньше не слышал про такую, немного деталей: "IX объединенная Европейская конференция по программной инженерии (ESEC), совмещенная с Симпозиумом по основам программной инженерии ACM SIGSOFT (FSE) впервые пройдет в России. ESEC/FSE по праву завоевал международное признание среди исследователей и разработчиков ПО как платформа для демонстрации и обсуждения инноваций, тенденций и новых задач в области программной инженерии"

SQA Days
обычно проводится 2 раза в год. весной (в этом году 26-27 апреля 2013) и осенью.
Та что была 30 ноября 2012 стоила от 5000 до 8500  (в зависимости от даты оплаты).
До 31 января 2013 - ранняя регистрация 7000р (с обедом).

Мой топ-X докладов c SQA-11
Программа и доклады SQA Days'12
Программа и доклады SQA Days'13

Анонсировано SQA Days'14, 8-10 ноября, Львов. 


Software Project Management Conference
обычно проводится осенью. На первой я был в Питере в прошлом году, в этом году в Минске.
Для примера программа 2012 года http://it-conf.ru/ru/content/544.htm
стоимость 2012 года от 5000 до 7500  (в зависимости от даты оплаты)

XP Days в Украине (да-да и тут все про Agile :)
программа интересная и докладчики не только доморощенные.
Обычно (ей 2 года только) проводится в (на) Украине :) осенью
стоимость 140-225$  (в зависимости от даты оплаты)

VMworld Europe 2013
Октябрь 15-17, Барселона. Регистрация открыта.

SECR-13
24-25 октября, 2013, Москва, но программа 2012 года меня не впечатлила.

Meeting C++
Европейская конференция по C++, 8-9 ноября, Дюссельдорф, Германия. Уже открыта регистрация и есть предварительные темы докладов. Вот программа прошлого года.

Не забываем про конференции, семинары и клубы от Стратоплана.

Кроме этого, могут быть полезны встречи IT Talk от компании DataArt. Про питерские можно узнать здесь IT Talk SPb. Аналогичные встречи проводятся в Воронеже и Харькове.

Список наверняка неполный, стараюсь его дополнять по мере поступления информации (последнее изменение 11.06.2013).

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

Еще одна подборка конференций по UX тематике

Аналогичный обзор сделан и для 2014 года. Он цепляет часть конференций декабря 2013.

вторник, 23 октября 2012 г.

Testing for Continuous Delivery with Visual Studio 2012

Бесплатная книжка от Microsoft про то, как с помощью Visual Studio 2012 писать код "правильно", читай  "тестируя".

Содержание

  • Unit-тесты: зачем нужны, как писать хорошие юнит-тесты
  • Coded UI тесты
  • Как развернуть тестовый стенд
  • Ручное тестирование
  • Автоматическое тестирование
  • Утилиты для тестирования (Load testing, IntelliTrace, Feedback tool, удаленная отладка)
  • Тестирование в цикле разработки приложения

Вглубь еще не читал, но "по диагонали" выглядит неплохо. Жаль только, что примеры все для C# :)

пятница, 12 октября 2012 г.

"А я еще и крестиком вышивать умею" (с)

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

Начальное состояние не сфотографировал. Но догадаться можно по этой фотографии


Ободрали вагонку и поставили леса


В перерывах закусывали урожаем с грядки


Поменяли окна и заканчиваем обшивать плитой


В обрешетке


Итого


Тут написал про то, как я отделываю окно наличником.

вторник, 9 октября 2012 г.

Visual Studio 2012 Update 1 CTP - Technology Preview

Я уже писал, про то, что Microsoft собирается выпустить Visual Studio 2012 Update 1.

Как они и обещали, бету версию они выпустили в конце сентября. Подробности здесь "Visual Studio 2012 Update 1 CTP".

Там есть обещанная поддержка Windows XP для С++ приложений "CTP of Windows XP Targeting with C++ in Visual Studio 2012" и много чего еще.

Что касается C++ & Windows XP. Поддерживаются Windows XP SP3 x86, Windows XP SP2 x64 и Windows Server 2003 SP2  x86/x64. В настройках проекта выбирается таргетная платформа и вперед.

Из С++ библиотек использовать можно все, кроме C++ AMP (C++ Accelerated Massive Parallelism). Для удаленной отладки нужно использовать старые утилиты (от предыдущих студий ). Новые не поддерживают платформу XP. 

Релизный апдейт (его уже зарелизили) можно будет поставить поверх этого tech preview.

Еще полезный пакет: Visual Studio 2012 Productivity Power Tools.

Update: появилась уже одна kb-шка для повышения стабильности VS 2012 "An update is available that improves the stability of Visual Studio 2012"

среда, 26 сентября 2012 г.

Casablanca или облачный C++

Я уже упоминал о проекте Casablanca в своем отчете о TechEd Europe.
На австралийском TechEd была сессия посвященная этой теме.

Что такое Casablanca и для чего она нужна. Изначально этот проект задумывался как C++ библитека для реализации Azure server-side сервисов. Итогом должен стать Azure SDK for C++ для написания полноценных end-to-end Azure приложений.
Для чего понадобилось писать C++ библиотеку? Ведь уже сейчас можно решать множество задач в Azure используя C#.
Ответ прост, и Microsoft использует его всегда, когда отвечает на вопросы о том, почему они вспомнили о C++:

  • близость к железу, отсюда производительность
  • портируемость кода
  • возможность использовать написанный ранее С++ код (они его называют legacy code, но мы помним, что так называется код без тестов :) )
Особенности реализации Casablanca показывают, что написана она была под влиянием новомодного Node.js
В слайдкасте на 16 минуте можно увидеть пример одного и того же приложения, написанного на Node и на Casablanca: практически 1:1
Почему Node привлекает? Это асинхронные операции, большое количество расширений и библиотек, а также простота реализации. Похожее попытались сделать и в Casablanca.

В библиотеке активно используются новшества C++11 (в первую очередь lambda). Возможно также использование новой библитеки PPL (Parallel Patterns Library)

Кроме этого Casablanca содержит классы для написания REST-сервисов и клиентов к ним, классы для работы c JSON, а также SDK for Azure Storage.
Насколько я понял REST и JSON можно использовать и без Azure (но буду подробнее читать в документации и надо попробовать).

Update: Casablanca официально зарелизили as C++ REST SDK. Пост с примерами. Пример использования этого API для подключения к Facebook.

Сам слайдкаст

Timeline:
до 8 мин:  вводная часть. Что такое Casablanca и зачем нужна
8-14 мин: демо, сервис Hello World :)
12 мин:     хорошо известная проблема с размером precompile header'a. Даже на демах об нее спотыкаются... мда
21-29 мин демо REST сервис на C++, работа с JSON (удобно кстати)

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

ЗЫ если фотографии в одной из демок были сделаны во время сессии, то народа там было не густо :)

вторник, 25 сентября 2012 г.

Новости о Visual Studio 2012

Прошло почти 2 недели с момента релиза  Visual Studio 2012. Есть много довольных и недовольных. Мы пока пытаемся понять, как нам использовать знания и умения в новой среде.

И ждем обещанного апдейта с поддержкой Windows XP. Теперь обновления для студии будут выходить в виде update'ов.

Что же нового ждать в Update1?

  • Давно ожидаемая нами поддержка WinXP для приложений на С++
  • Канбан теперь можно использовать вместе со студией
  • Пакет для тестирования приложений для SharePoint
  • Мелочи в виде фильтрации юнит-тестов в Test Explorer, Code Map
  • Возможности совместной отладки managed и native кода для Windows Store-приложений
Подробности: "Visual Studio Update this Fall" и "Microsoft to crank up the Visual Studio tool-suite release pace". CTP test build обещали в конце сентября, а сам релиз к концу года. Ждем :) (Дождались!)


Кроме этого Microsoft зарелизил Visual Studio Express C++ для разработки десктопных приложений. Есть возможность БЕСПЛАТНО использовать все возможности C++ 11 в новой студии. Качаем здесь. Комментарии Herb Sutter'a.

Одно из нареканий на новую студию - это ее лаконичная раскраска. Если вам хочется настроить цвета под себя используйте следующую инструкцию или смотрите это видео. Ну и "как убрать большие буквы из меню студии" :)


пятница, 6 июля 2012 г.

Видео: Kate Gregory and Steve Teixeira - Modern C++, AMP, Casablanca, C++ Renaissance

Интересное видеоинтервью с конференции TechEd Europe 2012 про C++.

О чем говорят:
  • ~ 3:25 - 6:00 поддержка XP в Visual Studio 2012 (особенности реализации, подробности есть тут)
  • ~ 6:00 После этого, особенности использования AMP (C++ Accelerated Massive Parallelism, библиотека использующая GPU для вычислений). Основная рекомендация: AMP предназначено для параллельного выполнения однообразных операций над однородными данными. Например, подбор пароля :) или изменение нескольких чисел в каждом номере большой базы тф номеров.
  • C++/CX (С++ библиотека для использования WinRT) можно будет использовать на Windows Phone 8. Интересная статья про С++/СX
  • Безопасное программирование на С++. На С++ гораздо "проще" написать программу, которая будет выполнять небезопасные операции, например buffer overflow. Для того, чтобы этого избегать, они Стив и Кейт рекомендуют использовать библиотеки для обработки данных (сортировки например), использовать готовые библиотеки алгоритмов и тд. Подумайте перед тем, как начать писать что-то свое. Избегайте С-style кода. Кроме этого, используйте статический анализ кода (часть студии).
  • Пару слов о Casablanca 
  • ~ 25 минута Аuto-vectorization - compiler renaissance. О том, как компилятор помогает ускорять работу программ
  • Пару слов о PPL (Parallel Patterns Library)
  • ~38 минута 
Что дальше, какие планы: 

  1. Express version for desktop application (with XP support)
  2. Продолжение реализации С++11
  3. Библиотека для surface
  4. Развитие Casablanca
"А вообще язык изменился, добавилось много нового. Изучайте эти новшества, чтобы снова начать использовать C++ эффективно" Кейт Грегори.


Еще видео Channel 9 с TechEd 2012

вторник, 3 июля 2012 г.

TechEd Europe 2012 Amsterdam

На прошлой неделе в Амстердаме проходила конференция TechEd Europe 2012, участником которой мне посчастливилось быть.

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


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

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


О докладах.
Пленарный доклад состоял из 2-х частей (было разделено на 2 дня: часть 1 и часть 2). Основное внимание было уделено новшествам в Windows Azure (главное из того что запомнилось - это поддержка там виртуальных машин: теперь Azure, в дополнение к PAAS, это еще и полноценная IAAS система), Windows 8 (а также ее ARM версии Windows RT) и новым инструментам разработки: Visual Studio 2012 и TFS 2012.
Забавно, что ничего не было сказано про Windows Phone. А на ряде слайдов так вообще использовалось фруктовое устройство :)
iPhone на фоне Visual Studio. Это зачет :)

Основное, о чем удалось узнать из личного общения с представителями Microsoft: Jason Zander (Corporate VP of the Visual Studio) и Steve Teixeira (Program Manager of the Visual Studio C++), это решение MS вернуть поддержку Windows XP в Visual Studio 2012 (пост был написан еще 15 июня, на TechEd удалось узнать подробности). Теперь появиться возможность собирать компоненты работающие на всех ОС, начиная с WinXP и заканчивая Win8, используя новые возможности компилятора C++11. Это здорово! Уважение вызывает и решение "откатить" ряд изменений в STL, для того чтобы реализовать эту поддержку. Итого будет два набора SDK, один из которых будет WinXP compatible, а второй для Win7  и выше. В новой студии, кроме поддержки нового стандарта С++, появилось еще много интересных вещей: расширение функционала по Application Lifecycle Management'у (Application Lifecycle Management Tools for C++ in Visual Studio 2012), поддержка Unit Testing for native C++, новые возможности по отладке. Поэтому думаю, нужно будет переходить на нее как только появится поддержка XP. По срокам определенности пока нет, но "not so far" (c) Jason Zander. Также было рассказано о проекте Casablanca: C++ для облаков

Есть отличная возможность послушать самим, что думают Стив и Кейт про ренессанс С++: здесь (C9::GoingNative Live: Kate Gregory and Steve Teixeira - Modern C++, AMP, Casablanca, C++ Renaissance) (для тех кому лень смотреть весь ролик: подробности про XP с 03:25 по 06:00 мин)

Очень понравились доклады Марка Руссиновича (про Azure virtual machines (Windows Azure Virtual Machines and Virtual Networks) и про использование Sysinternals утилит для поиска malware (Malware Hunting with the Sysinternals Tools), а также решения различного рода проблем на машине с Windows (запись аналогичного доклада с американского TechEd)). Очень рекомендую посмотреть последние 2 доклада.

Трейлер-бомба про новую книгу Руссиновича



Теперь короткие заметки о докладах, которые удалось послушать. И которые я рекомендую посмотреть.
Application Lifecycle Management: It’s a Team Sport
Интересный доклад про новые плюшки от студии. Из понравившегося: PowerPoint Storyboarding, Request feedback, Suspend Work (студия сохраняет все текущее состояние студии: открытые файлы, настройки окон и тп, и дает возможность потом их восстановить, если требуется срочно выполнить другую задачу). В общем, много удобств и инструментов встроено уже в саму студию. И работает быстро :) Статья Брайна о том, как настроить и посмотреть весь ALM (виртуальная машина).
В студии улучшился статический анализатор C++ кода, есть во всех версиях студии (даже в Express, но там анализируемых правил меньше), а также x86/x64 совместимость. Интересный profiler, для анализа узких мест в межпотоковом взаимодействии. Ну и, естественно, unit testing for native C++: работает быстро, пользоваться удобно, при запуске и прохождении тестов вы можете продолжать редактировать файлы - ничего не тормозит (ну во всяком случае на демах не тормозило :), сам еще не смотрел)

И еще один доклад о С++ Visual C++ and the Native Renaissance
Многое уже слышал раньше. Основной упор на универсальность и скорость. Кросс-платформенно :)
Пример приложения графического редактора на C++ :)

Два доклада про новый unit testing framework в студии Introducing the New Visual Studio 2012 Unit Testing Experience и Real World Developer Testing with Visual Studio 2012. Поменяли движок запуска тестов, теперь они действительно работают как должны.
Докладчики про unit testing
На самом деле Peter Provost подстриг свою шикарную бороду и сейчас похож на Ленина на броневике:

Но функционал "тестирование UI" (автоматическими кликами) продолжает тормозить. Это я уже про доклад "Creating Robust, Maintainable Coded UI Tests with Visual Studio 2012" Если уж на демо тормозило на окошке с одним Editbox, то что будет на реальном приложении...

Доклад"Jason Zander Unplugged» про вопросы-ответы: зал задавал вопросы, Джейсон старался на них отвечать:


Коротко ответы на вопросы с фото:
- поддержка XP будет только для C++
- насчет deployment packages: никаких изменений не планируется
- Metro можете писать на чем хотите: C++, C#, HTML5, Javascript
- Continious delivery for on premise TFS (напомню, что эта фича есть в "облачном" TFS): есть в планах
- Windows Forms: кроме фикса багов никаких новшеств не будет
- Windows Phone - ну тут понятно, что ничего не понятно :)
- WinRT будет на WinPhone8
- В студии можно писать web-клиентов для "фруктов" :)
Говорили еще про Silverlight: пока нового не планируют.

Доклад Sysinternals Primer: Gems про хитрости использования Sysinternals утилит - очень интересно.

Advanced Persistent Threats (APT): Understanding the New Era of Attacks! Интересный взгляд на текущее состояние безопасности. Живые примеры атак с использованием обычных утилит и инструментов, например SQL-injection и PowerShell :)

Еще немного фоток, чтобы почувствовать атмосферу этого мероприятия.

Было здорово! Спасибо моей компании за возможность поучаствовать. Кстати, мы ищем C++ программистов. С++ это модно и современно, идите к нам :)

PS Планируется к написанию серия статей про новшества С++ и про то, как его тестировать. Следите за новостями.





суббота, 2 июня 2012 г.

IT talk SPb - "Секреты успешного продукта. Как начать?"

30 мая в DataArt прошел очередной IT talk SPb.
Рома Чернышев рассуждал о том, как рождаются успешные продукты и что для этого нужно.
Тезисы:
Откуда брать идеи
  • выстрадать (или найти того, кто страдает :) - это мое)
  • стырить (читай позаимствовать :) )
  • синтезировать (самое сложное в плане вероятности успеха)
Наличие конкуренции это хорошо или плохо? Имхо хорошо: есть возможность понять, что идея актуальна, прощупать будущих конкурентов на слабые места. Я так понял, Рома придерживается того же мнения.

Влияние фрагментации рынка. Рома считает, что если есть монополист (больше 90%) то шансов мало. Хмм, пожалуй соглашусь. Но рынок мониторить надо постоянно - возможности технологий меняются быстро.

Реализация: сразу дворец или что попроще? Чем раньше продукт прикоснется к рынку - тем лучше. Абсолютно согласен.

Долгому выходу в свет способствуют страхи. Страхи что сопрут, страх потерять репутацию. Надо с этим бороться.

Мне понравилось, зал общался достаточно активно.

Следите за анонсами и не пропускайте следующие доклады. Это бесплатно! :)

PS Как обычно DataArt угостил всех вкусностями. Из гастрономических новинок были квас и березовый сок :)

DevCon'12 - как это было

23 и 24 мая в Подмосковье прошел очередной, ставший уже ежегодным, DevCon. Делегации "Кода Безопасности" удалось в нем поучаствовать.
Пару слов об организации. Все было хорошо: загородный свежий воздух, красивое место, хорошо организованное питание и проживание.
Но ехали туда не за этим :)
Ознакомившись с докладами перед отъездом, решил, что схожу на доклады по новой студии, С++ и Windows Phone. Последняя тема привлекла из чисто меркантильных соображений, задумывался на покупкой смартфона на WinPhone. Хотелось понять, что о платформе думают разработчики.

Думаю, что не буду писать отзывы в своем обычном стиле (доклад-докладчик-что полезного). Как то не поперло в этот раз.

Ниже просто вещи, которые показались мне полезными, интересными или просто фан :)

Фишки новой студии (ее RC уже доступен), про которые я раньше не знал:

  1. Code Review (запрос на ревью, возможность оставить комментарии, привязанные непосредственно к строчке кода)
  2. Поиск дубликации. Студия сама находит похожие куски кода, даже если названия переменных отличаются.
Новые возможности отладчика:

  1. Parallel Watch - в точке останова есть возможность посмотреть значения переменных в разных потоках. Неплохо. Осталось неясным можно ли использовать это при просмотре дампов от процессов exe, созданных старыми студиями. Будем смотреть. (см. комментарий Максима Гольдина ниже - должно работать. И вроде действительно работает)
  2. Новый Remote Debugging - автосканирование запущенных Remote Debuging сервисов на тестовых машинах. Дает возможность выбрать из списка куда подключиться и задать креды.
  3. Просмотр полей COM-объектов в Watch с помощью настраивания мапинга через natvis файлы. (И оказывается не только COM:  интересную ссылку прислал Максим Гольдин)


Остальное "Что нового". Но, к сожалению, с учетом проблем с XP (подробности здесь) пользоваться всеми этими плюшками получится нескоро. 
На конференции товарищи из русского Микрософта на вопрос про XP или вообще ничего не могли ответить (были не в курсе проблемы), или "нужна поддержка XP - пишете на старой студии". Ну в общем эта проблема осталась и в RC (что и ожидалось). Update: хорошие новости о поддержке XP с TechEd 2012

На докладе "Яндекс-Карты" про пляски в стиле Tango (Windows Phone 7.5) выяснилось, что товарищам редко удается переиспользовать готовый код из приложений для iOS и Android, что с одной стороны понятно, но с другой стороны между iOS и  Android это удается делать. Все из-за того, что доступа к native нет никакого. Грустно... Думаю СитиГид-а для WinPhone ждать придется долго.

Асинхронность в Windows RT: реализовано на уровне системы. Все операции длиннее 50ms должны делаться асинхронными. Реализация в коде простая и понятная. Неплохо сделали.

Пожалуй выделю доклад Мити Сошникова про обучение детей программированию. Познавательно. Буду пробовать. Начинаем с Kodu Game Lab (ms-kodu.ru). Потом Small Basic.

Пытался выпытать у товарищей из MS подробности будущего Windows Phone после релиза Windows 8. Молчат партизаны. Вернее "все будет хорошо" :) Но ведь так не бывает. После конференции наткнулся на интересную статью на эту тему 

Примеры использования Windows RT API из С++ напрягают. С одной стороны все попрятали и обернули. Но контроля программисту оставили мало. Но ведь это C++!! Зачем?
Кстати еще один интересный линк появившийся после обсуждения доклада по C++. Как раз про возможность контроля.

Одной из новых фишек конференции стало проведение ночи программирования. Правда получилось, имхо, не очень. Из анонса не было понятно, что людям без опыта в WinRT делать там нечего. А пришли как раз такие :). Спасибо С. Пугачеву за небольшой ликбез.

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

Вот и все. Не густо, не смотря на размах. На Sofware People мне понравилось больше.

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