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

Мини пати по разработке team game

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

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

Why test first?

TDD != XP; TDD in XP;

Опять возвращаемся к холиварам. Здесь не будет обсуждаться ценность написания тестов (для любого программиста, который разрабатывал системы больше года и поддерживал legacy code это ясно как божий день). А поговорим вот о чем. Зачем писать тесты до кода, если можно написать после и разницы вроде как бы и нет? TDD вообще очень сильно обросло мифами. Существуют руководители компаний, которые считают TDD мифом, а живых TDD-шников принимают за снежного человека. Есть, однако прогрессивные менеджеры, которые считают что писать в стиле TDD возможно, но надо стукнуться головой об стенку. Но разговор опять будет не об этом, а о плюсах и минусах использования TDD.

четверг, 9 июня 2011 г.

Анонс XP.Party, посвященной iOS 5 (beta)

6 июня Apple представило миру бета версию iOS 5. Прочитав её описание, я понял, что следующая встреча iOS должна быть посвящена именно iOS 5.

В iOS 5 появляется:
  • iCloud - легкое хранение данных в облаке;
  • Storyboards - новые концепты для создания интерфейсов, которые заинтересовали не только девелоперов, но и профессиональных дизайнеров интерфейсов;
  • ARC - automatic reference counting;
  • И много чего ещё...

вторник, 10 мая 2011 г.

Отчёт по Android May Days

Солнечным воскресным днём 8 мая состоялся Второй Всесоюзный Слёт Android разработчиков. Встреча прошла в уютном офисе Меркури. Зрителей пришло немного поменьше, чем в предыдущий раз.
Как и на первой встрече, целиком и полностью рулили и бибикали Саша Шауберт и Рома Григорьев. Они осветили те вопросы, о которых не успели рассказать на первой встрече. Всего было зачитано 4 доклада, в промежутках между которыми все ребята общались в неформальной обстановке за стаканчиком кока-колы. Под конец встречи все участники встряхнули костями и поиграли в Kinect.

1. Саша Шауберт - Native разработка под Android

  • Для чего нужно писать нативный код?
  • Установка и подготовка NDK
  • Структура MAKE файла
  • Связь с Java-кодом
  • Компиляция и ошибки
  • Разбор стектрейсов из нативного кода

2. Рома Григорьев - Fragments & Loaders

Презентация на SlideShare. //TODO
  • Постановка проблемы
  • Решение №1 - самописный Aspect фреймворк
  • Решение №2 - Fragments API
  • Android 3.0 и Compatibility Package
  • Loaders

3. Саша Шауберт - DI фреймворк RoboGuice

  • Коротко о проблеме DI
  • DI фреймворк и не только
  • Инжекция View
  • Инжекция Event
  • Передача параметров в конструктор
  • Логирование

4. Саша Шауберт - Майская подборка зубодробительных багов

  • Утечка объекта Thread
  • Утечка всей Activity
  • Незакрытые файловые потоки
  • Pending Intent
  • Неразумное перекрытие метода меню
  • Самсунг и скролл «как в айос»

Итоги
Встреча безусловно получилась полезной и интересной. Докладчикам респект и уважуха! Следующую встречу планируем на конец июня - начало июля, чтобы все смогли разделаться с сессиями, конференциями и концертами:)
В этот раз не успели провести практическую часть, хотя Саша подготовил задание и каркас приложения. Практику можно будет провести в следующий раз. Или, как вариант, вместо практики брать реальные боевые небольшие проекты и делать их в рамках XP party.
Есть проблема информационного характера. Сейчас о встречах узнаёт не так много людей, как хотелось бы. Нужно привлекать больше людей на подобные XP party.
Саша и Рома за две встречи уже заработали себе статус super star. Поэтому в следующий раз хотелось бы увидеть новых докладчиков.

четверг, 28 апреля 2011 г.

Hack Day #1

Итак, мы все же выяснили, что первый Hack Day состоится. Краткая справка о самом мероприятнии:
  • Место проведения - xp-квартира, находящаяся здесь. Квартира 11. Любые вопросы о том где именно это находится можно задавать по телефону +79277040842.
  • Время проведения: 30 апреля, 2011 года в период 11.30-22.00
  • Вход: 500 р.
Вот собственно и вся информация. Об остальном не стесняйтесь спрашивать лично.


Всвязи с общей нагруженностью людей hack day перенесен пока на неопределенный срок.

вторник, 26 апреля 2011 г.

Android Party Leaks

Всем привет.
Настали тяжелые в финансовом плане времена, и я вынужден смягчить требования. Заодно поделюсь информацией о грядущем android-событии. Надеюсь, что она всех только обрадует. Есть много приятных новостей. Начнем с того, что теперь у всех занятых участников появилась уникальная возможность внести символическую плату в 500р. (с учетом НДС), дабы не писать приложение. Напоминаю, что все написавшие приложение проходят в первую очередь и без всякой платы. Что еще. Мероприятие состоится в стенах родного для нас с Ромой Меркури, а это сулит нам как минимум работу с реальными девайсами, как максимум воскресный банкет (пожелания касательно меню принимаются в комментариях). И самое главное — формат встречи. Мы закончим предыдущую презентацию, затронем темы из комментариев прошлой пати… Впрочем, зачем много говорить, вот примерный список тем: Fragments API, Native development, OutOfMemoryError (bitmap size exceeds VM budget), Audio Recording, Dev Experience, Roboguice, 15 minutes of Exploding Head Issues. После лекционной части будет кодинг часть, которую постарается провести Владимир Игнатьев. Построим мобильное мультимедийное веселое приложение. После обязательной части — необязательная. Как я уже упоминал, компания предложила организовать фуршет. Еще у нас в Меркури есть kinect. Это я к тому, что самая приятная составляющая подобного рода мероприятий не осталась в тени. Резюмирую:
  • Место проведения: Меркури
  • Дата: 8 мая (воскресенье)
  • Время начала: 12 часов дня.
  • Формат: 2-3 часа на лекционную часть, 3 часа на кодинг часть, а финальная часть — банкетная — ограничена лишь временем закрытия офисного здания.
  • Вход: по apk или 500 рублевой банкноте.
Требования к участникам:
  • 1 ноутбук на двоих человек с установленной средой разработки (Eclipse+ADT/Idea).
  • отписаться в комментариях тем, кто будет, кто постарается быть, кто очень хочет быть.

четверг, 21 апреля 2011 г.

Отчет по iOS-party

Итак, прошла первая iOS-минипати посвященная Dependency injection. Перед участниками пати стояла задача написать небольшую программу, внедрить технологию DI и посмотреть, что из этого всего получиться.

В качестве проекта взяли конвертер валют, использующий веб-сервис ЦБ РФ. Весь процесс поделили на 2 итерации. В первой необходимо было создать приложение с заглушкой, результатом работы которой были бы зашитые фейковые данные. Во второй итерации нужно было реализовать получение данных от сервиса. Использование DI предполагалось именно в красивой "подмене" реализаций в противовес суровым "иф-дефам".

Мы разбились на пары и приступили. Каждая команда соперничала с другими, стремилась выполнить задачу круче и быстрее других. Увы, большую часть времени пришлось уделить созданию каркаса приложения, отладке кода, созданию UI и т.д., а не основной теме, поэтому прочувствовать всю силу DI не получилось. Но все же после 3-х часового мозгового штурма парам удалось реализовать рабочие скелеты приложений с инъекциями.

Мы получили неплохие результаты и ответы на следующие вопросы, которые волновали участников:
  1. Нужен ли DI, если есть фабрики?
    Довольно тонкий вопрос, как мне показалось, здесь немного выигрывает DI. Код становиться менее связанным.
  2. Зачем использовать библиотеку Objection, когда в языке Objective-C поддерживается нечто подобное?
    Библиотека предоставляет большую функциональность и избавляет от написания собственного инжектора, хотя никто не гарантирует отсутствие ошибок в самой библиотеки.
  3. Каковы плюсы DI?
    Многократное использование кода, минимальная связанность, высокое абстрагирование, хорошее решение для сборки проектов с различными конфигурациями.
В конце пати обсуждались форматы и темы будущих iOS XP-party, что лучше и каким образом. Отмечались плюсы и минусы проведенной тусовки, чтобы в будущем извлечь максимум пользы и сделать это мероприятие еще интереснее. Также было предложено несколько тем следующей пати, одной из которых - это TDD под iPhone.

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

Первые Hack Days

Привет всем. В скором времени планируется проведение первых Hack Days под эгидой XP Party.
Пару слов о формате мероприятия и телодвижениях, которые необходимо совершить, чтобы на него попасть. Формат пати планируется примерно следующий:
  • Заинтересованные люди до пати объединяются в команды разработчиков, количество людей в команде не ограниченно, но в идеале в команде должно быть три человека (хотя с тем же успехом он может быть и один). Самое главное - чтобы вам было интересно работать вместе.
  • Задача каждой команды придумать/выбрать себе идею для реализации, это также необходимо сделать до пати, поскольку мы будем здорово ограничены по времени.
  • В течение дня (hackday будет длится 8-12 часов, в зависимости от того как решат будущие участники в процессе предварительных обсуждений) должен быть реализован прототип идеи, который вы будете продавать "инвесторам". Инвесторы будут жестоки и беспощадны, поэтому вы должны будете сделать нечто удобоваримое. Презентация по проекту с лаконичным и емким докладом будет большим плюсом в пользу команды.
  • Никаких ограничений по языку программирования или платформе нету. Используйте то, что подсказывает вам ваша безграничная фантазия. Код, покрытый тестами будет безусловным плюсом.
К сожалению, в силу формата есть и ограничения. Оно в основом одно и основное: команд должно быть в идеале 3, чтобы вы друг другу не мешали и чувствовали себя комфортно. В крайнем случае и с большой неохотой мы возьмем четвертую команду, если вы нас убедите в том, что это действительно необходимо и стоит того, чтобы создавать неудобства другим командам.

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

Наблюдатели приглашаются на пати без каких либо ограничений.


Chat with me

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

Android May Days

Привет всем, кто хочет прийти на Android May Days.

Что нужно сделать, чтобы принять участие? Это очень просто:
  • Вам нужно собрать приложение, написанное под Android (2.1 и выше), и отправить его на androidmaydays@gmail.com. Приложение должно представлять из себя *.apk файл. Исходники не принимаются;
  • Запустив ваше приложение, я должен: 1 — понять, кто его сделал (фотка/имя-фамилия/баркод с текстом/etc), 2 — суметь отправить вам нужную информацию о встрече. Сделайте UI таким, чтобы я понял, как мне это сделать (сразу скажу, что не стоит делать TextView с номером вашего телефона:). Идеи: что-то, где бы я мог ввести текст/записать звук/сделать снимок камерой/отметить точку на карте и приложить текст/etc и кнопка отправить.
На все про все у вас есть ровно две недели. Последний срок принятия приложений 1 мая. На may days попадут только те, чьи apk будут у меня (касательно шаринга информации между участниками). Да, это естественный отбор :)

Всем спасибо.

UPD: Если вы симпатичная девушка, то вам нужно обязательно добавить в приложение, которое вы будете мне отправлять, вашу самую лучшую фотографию и номер телефона. Все остальное не обязательно.

среда, 13 апреля 2011 г.

Подробности грядущей iOS пати

Ранее я писал информацию по первой iOS пати. Мы определились до конца со всеми деталями проведения, которые и публикую.

Дата и время: 17 апреля с 15 до 18 часов;
Длительность: 3 часа плюс сколько надо времени на свободное общение по желанию;
Место: улица Галактионовская 68 (карта)
Цена участия: 400 рублей (на аренду помещения)

Темы: использование Dependency Injection framework'а в ObjectiveC
Небольшие приготовления необходимые участникам:
Проект: я ещё не определился с тем, какой именно взять проект, чтобы за 3 часа успеть его закончить целиком. Предлагаю подумать, какое бы приложение вы бы хотели попробовать разработать за три часа, чтобы попробовать DI фреймворк и почувствовать его плюсы и минусы. Возможно стоит взять существующее приложение и отрефакторить его. Идеи в комментарии!

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

Отчёт об Android Mini-Party


В воскресенье, 10 апреля произошла первая Android mini Party. Зрители пришли подготовленные! Очень многие знали что такое Android, некоторые что-то читали, а несколько энтузиастов даже сделали Hello World!

Саша Шауберт и Рома Григорьев провели настоящую XP-презентацию. Вдвоем они рассказали
* о то, за что стоит любить платформу Android,
* о «граблях», на которые уже наступили в своих проектах, а также
*«в лицах» разыграли холивар участников команды разработки, отстаивающих различные точки зрения на разработку Android приложений в течение двух итераций «почти реального» проекта.

Было так интересно, что времени не хватило!

Решено было продолжить презентацию (Рома с Сашей были готовы рассказать о еще двух итерациях и нововведении Android OS 3.0 Fragment API) в рамках следующей XP-Party.
Также, в рамках обсуждения доклада, были отмечены основные плюсы и минусы, собравшиеся решили что начинание успешное, и постановили что следующие XP-Party стоит сделать более практическими и провести их в следующем формате. «Экспертами платформы»  заранее будут придуманы несколько нетиповых задач, которые будут предложены для домашнего решения участникам. В рамках встречи же состоит разбор решений, code review, и исправление ошибок в реальном времени.

четверг, 7 апреля 2011 г.

Android mini-party совсем скоро

Внимание, товарищи. Напоминаю, что встреча состоится в это воскресенье (10 апреля) в 12:00. Участников, любящих поспать в воскресное утро чуточку подольше, мы подождем до 12:30. Местом сбора остается гостеприимная Маджента. Радостной для меня новостью стало то, что мое гордое одиночество нарушит Роман Григорьев. Таким образом ведущих будет двое. Учитывая то, что он не во всех вопросах со мной согласен, вижу огромную пользу для презентации. Она станет более объективной.
И еще одна приятная неожиданность. Сегодня мы пересчитались, и оказалось, что нас приблизительно 11-12 человек. Я считаю, что если эта встреча пройдет успешно, то следующая Android пати может быть уже без приставки мини :).
Кстати, Notepad у всех получился?

Dependency Injection для Android

Прочитал статью про dependecy injection framework для Android'а. Для нас DI имеет большую значимость потому, что позволяет делать более изолированные модули. А это даёт нам возможность удобнее их тестировать, тем самым повышая качество продукта. Ну и так же это уменьшает количество кода, который надо поддерживать.

Я думаю, что в обозримом будущем можно сделать минипати по DI для Android'ов, собственно поэкспериментировать с этим фреймворком, сделать законченное приложение, поняв плюсы и минусы этого.

Кто-то уже пользуется этим фреймворком? У кого есть интерес к тому, чтобы попробовать это своими руками?

пятница, 1 апреля 2011 г.

Рассылка: 100 ошибок применения Scrum

Всем привет!

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

вторник, 29 марта 2011 г.

Android минипати

У XP Party наконец-то появилось Android ответвление, с чем всех и поздравляю. Хватит уже Android разработчикам прятаться по углам. Настало время собраться и поделиться опытом.

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

Мини-формат диктует свои правила. Длится пати будет не дольше 3х часов.

Дата проведения: 10 апреля (воскресенье).

Начало встречи в 12:00, а пати начнется в 12.30.

Место проведения: Маджента (ДубльГИС).

Вход свободный.

Требования к участникам: начальный уровень знаний Android (как минимум 4 часа проведенных на http://developer.android.com/, пара-тройка пройденных туториалов, 0.57 - 1.53 попыток написать что-то относительно сложное). Для тех, кто придет с ноутбуками, ничего кроме android-sdk-tools + eclipse/idea, настроенные на работу с Android'ом, не потребуется.

С радостью приму любые предложения и замечания.

понедельник, 28 марта 2011 г.

Первая iOS-минипати

Пришла пора сделать iOS-минипати. Первая пати будет посвещена кодингу и обмену опытом.

Основная тема для пати: использование dependency injection framework в iOS разработке. Пока что смотрю в сторону вот этого Objection-framework.

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

Используем следующие техники: парное программирование, code review. Скорее всего, используем test driven development и continuous integration.

Встреча ограничена по времени — 3 часа.

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

Пока что по количеству участников ограничения не вводим.

Кто желает принять участие? Пишите об этом в комметариях вместе с пожеланиями по содержанию и формату.

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

XP Party #3 (27.03.2011)

В воскресенье 27 марта 2011 года была проведена третья XP-Party. Под катом моё описание событий и впечатления.

суббота, 26 марта 2011 г.

Третья XP.Party

27 марта с 12 до 19 часов состоится третья встреча XP User Group Samara. Место проведения: улица Галактионовская 68 (в ДубльГисе это вот здесь: http://go.2gis.ru/ccdp).

Туториал по рисованию в Java

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

вторник, 15 марта 2011 г.

Работа с VCS для Agile команд

По рекомендации Хенрика прочитал книгу Agile version control with multiple teams. Хотя в этой книге всего 22 страницы, но я нашёл в ней чёткое и конкретное описание правил и логики работы с системой контроля версий для Agile команд.

P.S. Спасибо Володе Абрамову, который нашёл русский перевод это книги.

XP Party #2: Презентация «Dependency injection»

Инъекция зависимости и Инверсия Контроля

Подробнее о DI/IoC, аспектно-ориентированном программировании и фреймворках, почитайте в моём блоге!

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

MParty по оценке проектов

В субботу, 26 февраля, прошла mini party. Ее темой стала оценка проектов. Мы обсудили много интересных вопросов, касающихся как непосредственно оценки, так и различных методик разработки программного обеспечения.

Встреча проходила в формате вопрос-обсуждение. Каждый участник подготовил вопросы, которые ему хотелось бы обсудить. Единственным условием mini party было ограничение общего количества участников (не более 6 человек). Далее я расскажу что конкретно удалось обсудить на этой встрече, а также в кратце поведую об участниках сего мероприятия.

среда, 23 февраля 2011 г.

XP Party #2. Java mocking frameworks

Виталий Ружников и Андрей Хайрутдинов рассказывали про идею моков (англ. mock) и других хитрых объектов при модульном тестировании приложений. Виталий сосредоточился на теоретической части, рассказав классификацию и описав каждый из классов таких объектов. Андрей, в свою очередь, представил рассказ про один из самым популярных Java-фреймворков Mockito и обладающий бо́льшими возможностями, но более сложный PowerMock.

понедельник, 21 февраля 2011 г.

Фотоотчёт о минувшей второй XP-пати

Вчера, 20 февраля, произошло замечательное событие! XP-пати в очередной раз порадовало коллег, разработчиков программного обеспечения, новыми знаниями в области экстремального программирования, которые удалось опробовать прямо в ходе мероприятия.
Традиционно, открытие мероприятия провёл Антон Катков. В такой нелёгкой тяжбе ему помог Виталий Ружников, так что с самого начала мероприятия, участникам сопутствовал здоровый fun.


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

Итоги ретроспективы XP.Party 20 февраля

По итогам ретроспективы вчерашней XP.Party мы сформировали список задач:

пятница, 18 февраля 2011 г.

Идея проведения mini XP.party

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

Вторая XP.Party

20 февраля с 12 до 19 часов состоится вторая встреча участников XP Samara User Group. Место проведения: улица Галактионовская 68 (на ДубльГисе это вот здесь: http://go.2gis.ru/ccdp).

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

Моки - это не стабы

Недавно прочитал статью Фаулера "Mocks Aren't Stubs", которая напрямую касается темы следующей пати - моков, стабов и их применения.

Ниже поделюсь мыслями о прочтённом.