Про Twitter, WPF и прекрасное

В поисках вдохновения сегодня просматривал студии, занимающиеся WPF и Silverlight. Нашёл достаточное количество достойных, однако, одной из них хочется уделить большее внимание, это Thirteen23 http://www.thirteen23.com/index.html (советую посетить их веб-сайт и ознакомиться с работами, оно того стоит) и их продукту Blu.

screens[1]

Blu – это отличный настольный Twitter клиент, написанный на WPF.

Скачать его можно по адресу: http://www.thirteen23.com/experiences/desktop/blu/

Реклама

Презентация или сайт

Введение

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

Презентация

image Большинство фирм имеют в своём арсенале качественные презентации, однако не все из них могут похвастаться качественным выполнением своих веб-сайтов. Исходя их чего можно с уверенностью заявлять – лучший вариант для них это публикация данной презентации в интернет, однако это связано с поиском разработчиков, оплатой их труда и прочими расходами. Следовательно, интересно было бы построить CMS, на основе функции импорта слайдов из ppt, pptx презентаций и на выходе получения готового решения в виде веб-сайта.

Так же мне очень нравится дизайн сайта студии depotwpf, который как раз и натолкнул меня на такие мыли.

image

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

Вопрос к аудитории

Хотелось бы узнать, что вы думаете по этому поводу.


Введение в Восхитительный Дизайн

Признание: я боюсь выключать свой мобильник.

image Не потому что я боюсь оказаться недоступным для связи, как вы решили. Черт возьми, мне надо меньше заботиться о том, могут ли люди достать меня. Если у вас есть, что сказать мне столь важного, что лучше оторвать меня от Will and Grace, что ж, думаю, лучше мне побыть еще 45 минут в блаженном неведении, прежде чем я это узнаю. Вот мой девиз: Сперва Воля и Милость, а потом Землетрясения и Потопы. (Will and Grace — сериал на NBC, но можно перевести и как Воля и Милость — прим. пер.).

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

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

Вы думаете, что зеленая кнопка его включает. Зеленый значит «Идите», верно?

Неверно.

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

Похоже, что он включается красной кнопкой.

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

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

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

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

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

Cover Image: User Interface Design for Programmers (book)

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

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

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

Гаджеты? Гаджеты еще хуже. У них крошечные клавиатуры и еще меньшие экранчики. В сочетании с необузданной функциональностью эти проклятые устройства умеют делать всё больше и больше вещей, но чтобы просто понять, как ими пользоваться, требуется инженерное образование (ну или смекалка 12-летнего ребенка, хотя рабский труд давно запрещен, тем более детский).

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

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

В то время как большая часть продукции становилась всё более непонятной, как типичный пульт управления домашним развлекательным комплексом с массой маленьких мягких кнопок, обозначенных надпиясми "MTS" или "SUPR" или "PTY", значение которых понять никто не имеет ни малейшей надежды, произошло ещё кое что: очень немногие, очень хорошие дизайнеры стали, каким-то образом, пробиваться с по-настоящему восхитительным дизайном, который был красивым, лёгким в понимании, остроумным, и который делал людей счастливыми. Вы знаете их, потому что продукты, о которых я говорю, стали бестселлерами. Apple iPod. TiVo. Google. Даже Motorola RAZR, который так сложно включить, в большинстве проявлений демонстрирует восхитетельный дизайн.

Статья заимствована на вики-узле Джоела.


Дружим LiveWriter и Twitter

image Большинство нынешних блоггеров, пользующихся Windows Live Writer проявляют так же активность на Twitter. Множество из них предпочитают сообщать о публикуемых постах Twitter-сообществу, думаю стоит автоматизировать это процесс.

Для этого нам необходимо:

  1. Скачать файл Twitter.WriterPlugin.dll и скопировать его в следующую директорию: “C:\Program Files\Windows Live\Writer\Plugins\”
  2. Сходить Tools (Сервис)–> Options (Параметры)–> Plug-ins (Подключаемые модули)–> Twitter Notify и заполняем свои Twitter’ские логин и пароль.

Это всё. Теперь при публикации сообщения в блог, Live Writer будет предлагать вам сделать отметку об этом в twitter.

image

Оригинал поста здесь http://www.labnol.org/internet/blogging/sent-twitter-blog-updates-windows-live-writer/3508/


О шоколаде, интернете, удобстве и разработке

Введение

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

Шоколад

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

gork_franz[1]

Вы когда-нибудь ели шоколадки этой серии? Фишка в том, что когда ты открываешь её, тебе не надо задумываться над тем как это сделать, потому что всё написано и нарисовано на упаковке, причём сделано так, что мало кто сумеет пойти другим путём. Это Великолепно!

Интернет

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

Приведу простейший пример:

Я пишу сообщение в каком-нибудь RTE (rich-text editor) редакторе, и вдруг меня посещает мысль о том, что неплохо бы было вставить картинку, мои глаза устремляются на поиски соответствующей кнопочки и хорошо, если я найду её, а то вместо того, чтобы продолжить изливать свою творческую энергию в редактор, я начну изливать её авторам сайта, либо критиковать его на различных информационных ресурсах.

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

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

Принято считать, что объекты, содержащие в себе «золотое сечение», воспринимаются людьми как наиболее гармоничные. Пропорции пирамиды Хеопса, храмов, барельефов, предметов быта и украшений из гробницы Тутанхамона якобы свидетельствуют, что египетские мастера пользовались соотношениями золотого сечения при их создании. Архитектор Ле Корбюзье «нашёл», что в рельефе из храма фараона Сети I в Абидосе и в рельефе, изображающем фараона Рамзеса, пропорции фигур соответствуют величинам золотого сечения. Зодчий Хесира, изображённый на рельефе деревянной доски из гробницы его имени, держит в руках измерительные инструменты, в которых зафиксированы пропорции золотого сечения. В фасаде древнегреческого храма Парфенона присутствуют золотые пропорции. При его раскопках обнаружены циркули, которыми пользовались архитекторы и скульпторы античного мира. В Помпейском циркуле (музей в Неаполе) также заложены пропорции золотого деления, и т. д. и т. п.

Хотелось бы привести в пример ресурс, с которым в последнее время начал активно работать, это Twitter

image Он безумно популярен, и это не удивительно, в связи с тем, что он:

  1. Реализует законченную идею
  2. Предоставляет интересный и исчерпывающий функционал
  3. Прост и удобен в использовании

Разработка ПО

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

Чтобы не быть голословным хочу привести в пример анализ некого out-of-box движка для интернет-магазина.

При разработке такого движка следует понимать следующее:

  1. Клиент, который будет заинтересован в покупке данного решения (мы продаём не продукты, мы продаём решения ;)), не будет заинтересован в организации его поддержки (если он купит коробку, он не захочет нанимать специалистов для работы с ней).
  2. Движок должен быть максимально прост и предоставлять основную функцию – разворачивание и поддержка интернет-магазина, желательно, чтобы это происходило по нажатии нескольких кнопок

Те же самые принципы должны относиться и к самому процессу написания программного обеспечения:

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

Заключение

Хотел попробовать пописать о разработке немного отвлеченно, немного не с технической стороны вопроса, хочу, чтобы мой опыт был полезен не только .NET – разработчикам.


Премировать? Не премировать?

Частичный перевод статьи Thanks or No Thanks by Joel Spolsky.

В начальных строках статьи рассказывается, как пару лет назад Noah Weiss, который проходил летнюю практику в Fog Creek Software, пришел к Джоэлю с бизнес-идеей: запустить на компанейском блоге публикацию предложений работы. Его аргументы: сайт посещается тысячами программистов-профессионалов в месяц; запустить систему публикаций будет несложно; к сайту Fog Creek уже прикручена система оплаты кредитными карточками, печати квитанций и т.п. В общем, проект не займет много времени и сил.

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

Однако Noah продолжать спорить: «Эти парни с 37signals размещают у себя 50 реклам в месяц. По $250 каждая, так что в сумме…»

Секундочку, прервал я его. Они берут по $250 за каждую рекламу? Я представлял себе, что потолок цены за показ вакансии должен быть, ну максимум, не знаю, скажем, $4, нет?

Это так, подтвердил Noah. Но они берут по $250 за опубликованную вакансию. «Кроме того», добавил он, «список вакансий – это не совсем реклама, это, скорее, социальный сервис».

bonus Dilbert Wally

К тому времени я его уже практически не слышал. Маленькие шестеренки закрутились в моем мозгу. $250 помножить на 50 вакансий помножить на 12 месяцев… Такой доход позволит мне нанять еще одного программиста! Вот так мы и добавили рекламу на сайт. Noah написал черновой вариант кода за пару недель, еще за две недели я заполировал и отладил этот код. Общее время на постройку сервиса предложений работы составило приблизительно 1 месяц.

Вместо того, чтобы брать за одну публикуемую вакансию $250, мы решили брать $350. Почему нет? Я решил, что мы вполне можем позиционировать наш продукт как продукт класса «Премиум» уже хотя бы потому, что продаём его по цене класса «Премиум». При отсутствии другой информации потребители зачастую используют цену в качестве критерия оценки качества продукта. А я хотел, чтобы наш сайт был Lexus-ом среди сайтов, размещающих объявления об имеющихся вакансиях. Несколько месяцев спустя 37signals подняли свою цену до $300.

К тому моменту, когда вы читаете это, маленький четырёхнедельный проектик сделал для Fog Creek Software 1 миллион долларов – почти всё это чистая прибыль.

Неизбежно возникает вопрос: как бы так, должным образом, вознаградить сотрудника, который принёс свою сногсшибательную идею стоимостью в 1 миллион долларов? С одной стороны, вы могли бы сказать, что вы не обязаны: бизнес программного обеспечения – это, по существу, фабрика идей. Мы уже платим Noah за его идеи. Это заложено в его договор с компанией. Зачем, спрашивается, платить дважды?

eliminate bonuses Dilbert

Однако я чувствовал, что мы должны сделать что-нибудь еще, чтобы выразить нашу благодарность. Может, купить ему Xbox 360? Заплатить бонус наличными? А может, вручить ему в торжественной обстановке почётную грамоту, красиво отпечатанную на плотной бумаге с тиснением? Или, может, подарить ему футболку с надписью «Я придумал дело стоимостью в миллион. За это босс наградил меня этой вшивой футболкой»? Мы были озадачены.

А что насчет остальных сотрудников Fog Creek? Всех тех людей, которые просто делают свою работу. То, что одна идея одного из программистов явно и непосредственно превратилась в кучу денег, еще не означает, что все другие члены команды не внесли свой соизмеримый вклад в бизнес компании, хотя и не таким прямым образом. В то время как Noah пришел со своей идеей размещать рекламу на сайте, большинство моих сотрудников упорно трудились над 6-ой версией FogBugz, выход которой практически удвоил наши месячные продажи.

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

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

Интересный момент. Согласно психологам, внешняя мотивация вытесняет внутреннюю. Сам факт вознаграждения работников за хорошо сделанную работу ведёт к тому, что они начинают работать только за вознаграждение; если вознаграждения прекращаются, прекращается и хорошая работа. А если вознаграждение чересчур низкое, работники начинают думать: «Ёлки-палки! Оно мне надо – напрягаться». Они забывают своё врожденное, внутреннее желание работать хорошо.


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

И недовольные правы: невозможно точно определить, больше или меньше для Fog Creek стоит исправление бага, которое сделал David во вторник, по сравнению с кодом, написанным Ted-ом в среду. У нас тут не конвейерное производство по ручной пошивке собачьих курточек, на котором David пошил 5, а Ted пошил 7, и очевидно, что Ted принес компании на 40% больше денег.

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

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

За время моей карьеры я заметил, что компании, имеющие формализованные системы вознаграждения, в которых денежные премии привязаны к результатам, приходят к тому, что большая часть их персонала имеет плохое настроение и несчастна. Помню, когда я работал в Microsoft, один из моих друзей получил очень низкую оценку во время ежегодного обзора; эта оценка не была ни честной, ни правильной. Его боссы оценили его, глядя на 5% его работы – на его нечастое общение с ними. Вместо того чтобы обратить внимание на 95% его работы, где он был образцом для подражания – его постоянное общение с заказчиками. {…}

raise Dilbert

Возвращаясь к Noah, парню с миллионно-долларовой идеей. Хотя мы и не верим в премии за выдающиеся результаты, мы по-прежнему хотели бы как-то отметить его вклад. Мы решили дать Noah 10,000 акций компании – при условии, что он вернется к нам работать после окончания университета. Поскольку Fog Creek – это частная компания, и цену акции определить сложно, то мы могли бы сказать: «Это будет справедливо, парень, если ты будешь иметь свою долю в компании». Не потратив при этом ни одного настоящего доллара. Это было не идеальное решение, но все думали, что оно имеет смысл.

Noah казался довольным, и мы надеялись, что эти акции поспособствуют его решению вернуться к нам на фирму после учебы. А он взял… и не вернулся. Google сделал ему лучшее предложение. Еще одна проблема с вознаграждением, основанным на оценке результатов: вашему конкуренту проще перебить вашу ставку.

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

Благодарность

 

За этот пост отдельная благодарность http://mazanu.com/2009/01/blog-post_17.html

А так же обращаюсь с читателям с предложением почитать так же замечательные книги Джоела Спольски:


Уроки бизнеса от Джейсона Фрида из 37signals

Jason Fried, сооснователь 37signals выступил на конференции Business of Software, где рассказал про идеи, которые его компания применяет. Многие из этих идей — полная противоположность некоторым «аксиомам» бизнеса, и тем не менее, 37signals неплохо живет-поживает.

Момент

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

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

37signals работают над проектами длительностью день-два, неделю или две максимум.

Отсутствие планирования

37signals не верят в планирование. Многие вещи, которые они делают — просто делаются, а потом компания смотрит, что с ними будет. Если работает — они продолжают развивать, если нет — бросают.

Таким образом, компания не пишет спецификации и roadmaps. По словам Джейсона, эти вещи абстрактны, поэтому они не работают.

Решения временны

Если вы принимаете решение, то не стоит слепо следовать ему всегда. Позже можно все поменять.

37signals выдали своим работникам (их на момент написания этой заметки было 12) кредитные карты для покупок: хотите купить книгу или поехать на конференцию? Компания оплатит.

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

Решение добавить функциональность в продукт тоже временны.

Отсюда — оптимизируйте для текущей ситуации, для того, что имеет значение сегодня.

Удаленная работа = большая продуктивность

Офисная обстановка располагает к отвлечениям по мелочам (телефонные звонки, разговоры и т.п.), поэтому удаленная работа — это хорошо. (Интересно, а CampFire их не отвлекает?)

Сфокусируйтесь на постоянном

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

Видео

Смотрите полную запись выступления:

Благодарность

 

Текст сообщения полностью скопирован с http://sellme.ru/2008/11/08/uroki-biznesa-ot-jason-fried-iz-37signals за его написание выражаю огромную благодарность.