Category: общество

Category was added automatically. Read all entries about "общество".

glider

Прогресс по макросам

Сегодня снова замечательно пообщался с народом по поводу макросов в Скале: https://raw.github.com/xeno-by/kepler/master/papers/2011-10-18-WhatsUp.pdf. На этот раз все было гораздо более приземленно - презентация была о том, как воплотить идеи, изложенные в несколько недель назад, в конкретные расширения для Скалы.

За прошедшее с предыдущего аннаунсмента время я получил несколько очень ценных отзывов. Скажем, Крису и Штефану интересно поэкспериментировать с поддержкой LINQ. Не вопрос - подумали и придумали, как это выразить макросами. Нада и Грег воюют с необходимостью обрабатывать все стопицот типов FunctionN и TupleN в кросскомпиляторе со Скалы в жабаскрипт. Не вопрос - теперь у нас есть макро пэкиджи (или, если не удастся уломать Мартина, макро пэкидж обжекты).

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

убунта, часть 5: обратно на винду

часть 1: первый взгляд
часть 2: установка
часть 3: софт
часть 4: интероп с виндой
часть 5: обратно на винду

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

Вначале я стал юзать винду в универе, потом поставил ее в дефолтную загрузку в грубе, а потом и полностью на нее вернулся. Сразу перестал отваливаться wi-fi, ноут перестал зависать после слипа/хибернейта, снова работают hd-сериальчики, больше не греется ноут и время жизни увеличилось раза в полтора (думаю, последние два обстоятельства неким образом связаны друг с другом). Наконец, исчезли мои любимчики - паники с диагнозом "XXX is tainted", которые лечились только ребутом. Эти няшки особенно приятно было ловить во время ребилдов scalac, которые занимают по 10-15 минут.

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

Позитивный опыт

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

Кроме того, я смог оценить ноушен текста как универсального медиума для общения между программами. Отсюда вытекает и консоль-френдлинесс программ, и kiss в плане форматов общения, и много еще чего из unix way. Некоторые утверждают, что это все не специально получилось, а просто из-за того, что юникс был убог. Из-за этого для него приходилось применять самые дубовые подходы, поэтому имеем, что имеем. Хз как оно было, но дубовость это не обязательно плохо (как, например, ООП в перле). Навряд ли я бы понял эту мысль, если бы не поюзал линукс.

Из чисто юзерского экспириенса с линухой вынес пару положительных моментов. Во-первых, концепцию хоум-директории. Будучи травмированным детским опытом с documents and settings, я и не представлял насколько полезно организовать единую свалку файлов (скажем, в c:\users\%username%) и не загоняться насчет того, что лежит на каком диске. Действительно, упрощает мыслительный процесс + никто не запрещает в хомяке хранить не сами файлы/папки, а только симлинки на них. Во-вторых, теперь я знаю, как решать проблемы с разбивкой и бэкапом дисков. В честь этого live cd убунты уверенно обосновалась на скрытом от винды партишене моей флешки. Это действительно очень круто после партишен мэджиков и акронисов.

Несбывшиеся ожидания

Я очень сильно надеялся, что на меня снизойдет просветление, и я раз и навсегда откажусь от гуевых приложений, файловых менеджеров и прочей хрени, и буду работать только из-под консоли и консольного емакса, а также слушать радио "Радонеж". Этого нихрена не произошло. Мне по-прежнему удобнее: 1) упорядочивать большие коммиты специализированными не-консольными тулами, 2) вести несколько проектов при помощи файлового менеджера, 3) юзать эверноут в качестве тула для заметок. Я видел то, чем люди это заменяют, и очень не впечатлен продуктивностью альтернативных методик. Если я неправ, поправьте, пожалуйста. Вон ребе меня убедил в том, что тотал надо выбросить, поэтому я еще не конченный человек.

Да, я раньше недооценивал удобство подхода в стиле "нахерачим все в одну папку - скала-файлы, класс-файлы, скрипты - зато можно будет просто сделать cd и все будет под рукой". Это действительно удобно для одноразовых предприятий, но в перспективе такой подход просто генерит файлопомойку, в которой потом даже самому не разобраться. Я бы очень хотел узнать, как этого не допустить без файлового менеджера. Только не говорите, что надо ручками делать cp/mv и регулярно посматривать ls, чтобы убедиться, что все идет правильно. Просветите, пожалуйста, а то в голове не укладывается.

Как там, на гражданке? Бабы есть?

Ессно, на винде далеко не все безоблачно. Что лично меня рубит после линукса - тормоза емакса, тупейший терминал, отсутствие пакетного менеджера для софта и постоянные выскакивалки из трея. В принципе, для счастья надо только решить #1 (очень больной вопрос, ибо я на емаксе сижу только второй месяц от силы, а жизни без него больше не представляю). Второе до некоторой степени фиксится фаром, а остальное можно потерпеть. В сравнении с тем, через что пришлось пройти на убунте, это вообще детский сад.

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

вычисления на типах

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

Вычисления на типах, вероятно, являются кульминацией трюков с типами. Литералы Черча, рекурсивные типы, вложенные типы, которыми эмулируются функции... Народ, расскажите, пожалуйста о киллер юзкейсах вычислений на типах потому, что я не могу представить ради чего можно писать ТАКОЕ:

scala> trait TF {
     |   type Apply[A]
     | }
defined trait TF

scala> type Curried2[F[_, _]] = TF {
     |   type Apply[X] = TF {
     |     type Apply[Y] = F[X, Y]
     |   }
     | }
defined type alias Curried2

scala> "a".pure[Curried2[State]#Apply[Int]#Apply]
res7: scalaz.State[Int,java.lang.String] = scalaz.States$$anon$1@1dc1d18
Также крайне интересно было бы узнать об альтернативах вычислениям на типах - вещах более читаемых и обладающих похожей полезностью. Окей, есть макросы, и в Скале мы туда обязательно доберемся, но какие могут быть еще полезные подходы?
glider

Зависимые типы

Уважаемые читатели, приведите, пожалуйста, практичный пример использования зависимых типов (кроме сортировок, плиз).

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

upd. Материалы по теме:
* А про зависимые типы - это примерно так
* Зависимые типы и метапрограммирование
* Решительно непонятно, как можно программировать без dependent types
glider

Лайфхак по прокачке дропбокса

Основным способом увеличить размер бесплатного аккаунта на дропбоксе является привлечение реферралов. За каждого, кто зарегался по совету некоторого пользователя (т.е. пройдя по уникальной ссылке, которую этому пользователю выдал дропбокс), добавляют дополнительное место. Максимальное количество реферралов - 32, потом бонусная программа работать перестает.

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

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

Пост был бы неполон без моего отчета о применении идеи на практике. Так как на все про все автор слинкованного поста затратил 400 рублей, я забросил на счет adwords 15$. Так же, как и советуется в посте, я создал рекламную кампанию на ключевое слово dropbox продолжительностью три дня. В качестве целевой аудитории выбрал Россию и русский язык (гугл предлагал еще показывать рекламу тем, у кого язык интерфейса английский, но я решил, что у таких челов уже давно есть дропбокс или что покруче).

И вот что случилось. Первые несколько часов вообще не было результатов, но за время вечерней прогулки по моей ссылке зарегались 8 человек. Пока я спал - еще 8. Пока завтракал - еще 2. Пока писал пост - еще 3. Плюс, 5 человек зарегистрировались в дропбоксе, но не поставили себе его клиента (т.е. за них мне дополнительное место еще не дают). На текущий момент, за 16 часов по моей ссылке кликнули 62 раза (из 332 показов). За все это гугл забиллил меня на 2.84$.
glider

онсайт собеседование с гуглом, часть вторая

Первая часть

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

1. За обедом у нас зашла речь об энвайронменте разработки. Поддерживая разговор о средах разработки, моя компаньонка сказала, что вообще не использует IDE. К этому я был готов и с надеждой спросил: "Неужели Emacs?". После недавного опыта с емаксом у меня есть желание разобраться, но я не знаю с чего начать, поэтому особенно ценной была бы возможность пообщаться с живым адептом этого таинственного тула.

Здесь меня постигло разочарование и удивление одновременно - моя собеседница сказала, что использует всего лишь какую-то несложную тулу для редактирования текста (нет, не vi), а больше ей ничего и не надо. Поиск и навигация по коду в ее воркфлове отделены от редактирования и осуществляются в некоем веб-туле аля Google Code Search. Здесь у меня три вопроса:
* Насколько близки возможности этого тула к публичному code search? Вот, я открыл случайный C#-проект в code search. Панелька навигации отображает структуру проекта и даже выделяет семантические элементы внутри файла. Это хорошо, но где гиперлинки в стиле "go to definition"?
* Можно ли поставить этот или аналогичный тул локально и индексировать свои личные проекты?
* Народ, ну как вы обходитесь без интегрированных в редактор кода рефакторингов?!

2. Я не смог удержаться и спросил одного из интервьюеров, а также и девушку за обедом про то, как народ использует 20% времени, которые политикой гугла отводятся на личные проекты. По рассказам (которые также коррелируют и с тем, что мне рассказала Дженни) получается, что можно замутить что-нибудь интересное, представить это что-то широкое публике и при успехе презентации ожидать приток свежих сил на мини-проектик. При особой пользе личного проекта для Мирового Разума, может предоставиться возможность заниматься им фулл-тайм (здесь мне рассказали историю некоего Кости, который сгенерил тул, умеющий в полуавтоматическом режиме искать data races; сейчас, при написании поста я нагуглил немного больше деталей). Звучит отлично, поэтому очень интересно было бы узнать детали.

3. Стала неожиданностью позиция народа относительно альтернативных языков программирования. Как я понял, в гугле есть четыре языка, на которых пишут большинство кода в продакшен - Java, C++, Python и Go. Мои вчерашние собеседники пишут исключительно на Java/C++ и иногда мелкие скрипты на питоне. Go считается мистической экзотикой, которую никто из них не пробовал, но, по слухам, это что-то классное. На провокационные вопросы типа: "а никогда не хотелось заюзать какой-нибудь другой ЯП?" или "согласись, приятно покодить в функциональном стиле?" никто не поддался. А самый первый мой интервьюер даже не слышал, что такое Scala. Отражает ли эта выборка мнений общую картину?

На пока что все. В следующем посте я попробую описать тематику вопросов (вчера было пять собеседований, по 1-3 задачки в каждом) и выскажу соображения по поводу подготовки на основе полученного опыта. К сожалению, тексты задачек я привести не смогу (NDA я не подписывал, но явно высказанной просьбе отказывать не хочу), но, надеюсь, будет интересно.
glider

#ADD2010

На днях съездил с докладом на конфу Application Developer Days, которая проходила в Ярославле. Причем ни с чем-то, а с первой демонстрябельной версией Конфлакса. Мой доклад и детали по нему будут выложены отдельным потсом, а здесь поток сознания.

1. На 90% ехал для того, чтобы девиртуализироваться и пообщаться с жж-шными френдами. Это удалось на все 900%. Народ перечисляю в порядке знакомства. Олега zamotivator я узнал за пару секунд - когда они стояли и курили с Кириллом (catap.ru). Такие же поток сознания и жоская движуха, как и в ЖЖ. Кирилл оказался челом медитативного плана, который по жизни на позитиве, но знает он реально дохрена - его совместный доклад на тему SQL vs NoSQL было жутко любопытно послушать. Женя antilamer и Юля grrrl - мегаприятные и душевные в общении люди, заодно еще профессиональные и совсем не фрики, а эти качества вместе случаются очень редко =)

2. Перемещение тела обошлось в чуть более, чем сто баксов туда-обратно (Минск - Москва - Ярославль - Москва - Минск). С проживанием удалось разрулить вообще на ура - за 1300 р. в сутки снял квартиру, правда горячую воду отрубили в день моего проезда, но это настоящая квартира, где никого нет рядом, тихо и просторно. Я фшоке. И это в то время, когда нормальные отели в Ярославле (в честь его недавнего тысячелетия) начинаются с 4000 в сутки.

3. По докладам (см. расписание вот тут: http://it-conf.ru/ru/content/331.htm; при клике на доклад можно почитать его тезисы и информацию об авторе).

3а) SQL vs NoSQL, наверное, задумывался более как справочник - из полуторачасовой беседы у меня в голове осталось два пунктика: 1) в распределенности все сложно, 2) см. презентацию - там все детали по 100500 хранилищам данных. Здорово повеселил аудиторию Кирилл, постоянно повторяя, что "счастья нет" =)

3б) Дальше был срач по поводу систем контроля версий. Жесть, прямо как в каментах у Олега - жуткий поток сознания, из которого вылавливаешь полезное для себя. Я выловил git rebase (интересно, как такое сделать автоматом в меркуриале, не прибегая к mq) и то, что svn, оказывается, неожиданно полезная, ибо уже есть работающий svn merge --reintegrate. Насчет последнего еще рассказывал Стас Фомин в докладе "Золотая середина. Открытые системы поддержки разработки". Жаль тока в том докладе время закончилось раньше, чем началось самое интересное.

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

3г) На следующий день я успешно проспал презентацию windows phone 7 и начал день с фтыкания в хадуп. Походу, это есть опен-сорс реализация нашумевших в свое время концептов гугла про мап-редьюс, биг тейбл и распределенную fs. Докладчик, который по долгу службы работает с хадупом, ввел нас в курс дела, после чего я забился в уголок погуглить на тему того, как переводить всякие, например, джоины в мап-редьюс, окуклился и протащился. Потом пришел Катап и сказал, что хадуп любить падать и уносить за собой в могилу данные. Фак. Всю идиллию разрушил.

3д) Круглый стол SQL vs NoSQL прошел гораздо более организованно, чем предыдущий круглый срач про VCS. Чтобы не было так, что кто-то на букву "О" перекрикивает оппонентов, поставили микрофоны. Но не каждому, а через 3-4 человека. Хорошо поглумились =) а если по сути, то благодаря майевтике Андрея Аксенова я, как неспециалист, понял одно - пока что нет автоматического решения, которое бы позволило мне воткнуть в два раза больше компов и получить в два раза больше перфоманс. Как это объяснил после доклада Олег, здесь есть две проблемы: 1) невозможно автоматическое партицирование в общем случае, 2) очень долго перепартицировать данные после ввода в систему нового кластера - ну в самом деле, даешь перекачать пару терабайт по сети. Еще услышал кейворд Riak. А вот еще. Стас Фомин сидел и (не лень же ему) конспектировал дискуссию в майндмап. Так я познакомился с Freeplane, который, по тому, что вытворял Стас, удобнее MindManager, который я юзаю сейчас.

3е) Дальше был доклад, который из всех на конфе мне понравился больше всего. Выступал Женя Кирпичев (antilamer) с рассказом про параллельное программирование. Тем было затронуто очень много, некоторое время я прокемарил, но стратегии организации общения нодов в распределенной системе меня впечатлили до глубины души. Например, системы с обратной связью. Вдаваться в детали не буду - скоро Женя сам выложит доклад в ЖЖ. Впрочем, здесь тоже масса неразрешимых проблем - например, непреодолимая сложность асинхронных систем. Не только синтаксически мусорная call1(function(result1) { call2(result1.foo, function(result2) ... (ее можно убрать монадами), но просто логическая. Блин, и здесь элегантно легкого решения.

3д) Под занавес доклада зал порвали Яков Сироткин и Андрей Аксенов рассказами о том, как перестать бояться и полюбить бомбу. Технических деталей минус ноль, но зато весело и приятно о психологических факторах разработки как работы и как хобби. Было здорово - технические детали есть и в инете, а вот живого общения в инете не наблюдается.
glider

Параллелизм мозга

Из литературы или из ad-hoc опыта широко известен факт о том, что human task switches are considered harmful. В моем понимании он является следствием двух вещей: 1) сознание не способно сконцентрироваться на более, чем одной задаче одновременно, 2) переключение сознания между задачами до уровня хорошей эффективности занимает значительное время - у меня на это уходит полчаса или даже больше.

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

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

***

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

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

2. Зачастую текущий таск настолько сильно захватывает, что переключать его очень не хочется. Например, мне тупо нравится программирование как возможность заставить комп делать то, что ты хочешь, и потом наслаждаться созерцанием результатов - поэтому я могу часами заниматься хакингом here and there. Та же фигня и с книжками - сидишь, читаешь и совсем не можешь оторваться.

3. Нежелание что-то делать из-за блокера. Время от времени так случается, что никаких активных тасков нет, но делать все равно ничего не хочется. Дело может быть в банальной усталости (пункт 1) или в том, что переключение на какую-то таску ассоциируется с серьезным психологическим барьером. "То, что надо, не делаю потому, что очень сильно не хочется, а то, что хочется, не делаю потому, что надо делать, то, что надо" - это как раз про такую ситуацию.

***

С трудностями я собираюсь справляться следующим образом - пока что я пробовал только мелкую гранулярность таймфреймов, отводимых на таски, т.е. пытался делить день на 2-3 части. Но, как я помню себя раньше (т.е. до того, как я начал сознательно управлять своими тасками), естественным образом у меня получается работать, разделив неделю на отдельные дни - так собственно и сделаю: 1 день = (в идеале) 1 таска.

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

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

***

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

Дополнительные проблемы - 1) как в список интересных тасков включить бытовуху, а также возможные неприятные вещи типо необходимости общения с кастомером на работе, 2) как оценивать свой прогресс, 3) как анализировать и корректировать общее направление движения. Но об этом я подумаю уже потом - всего понемножку.
glider

Обратная сторона творчества

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

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

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

***

Загон №1. "Вокруг столько людей, которые занимаются делом и рождают такие интересные креативы, а вот я...". Первая (длинная) часть фразы здесь не несет смысловой нагрузки, а является лишь усилением второй. То есть, вернее, первая часть фразы - эмпирическое наблюдение, которое, вкупе с временным недостатком креативов (то есть ломкой от недостатка вдохновения), запускает самоедство, а последнее, собственно, и является главным посылом цитаты.

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

Загон №2. "Целый день потратил на ремонт квартиры, а делом так и не занялся...". Грустно, что быт и здоровье вытягивают силы, которые можно было бы направить на творчество. Мне это очень знакомо - недавно я сломал себе руки и половину августа, а также весь сентябрь, не смог делать то, что мне нравится. Мало того - даже маленьких мыслишек в голове не было, ибо походу организм настолько усердно восстанавливался. Впрочем, после этих полутора месяцев я снова вернулся к творчеству и начал очень яркий проект.

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

Загон №3. "То, что я делаю - слишком примитивно и никому не нужно...". Обычно у меня такое возникает как следствие загонов №1 и №2. Когда моск осознает проблему, то начинает искать какую-то причину. Почему-то обязательно первая мысль - обвинить себя.

Способ борьбы. Этот загон исчезает вместе с загонами, его породившими. Ну, а, как только начинаешь снова творить, мысли о своей никчемности обычно не возникают - не до этого становится =)

***

Из внешней литературки хочу посоветовать потсы из одного программерского блога. Что удивительно - инфа там подходит для всех творческих людей: Taming Doubt, Taming Perfectionism. А для вдохновения рекомендую почитать книгу Джека Лондона "Мартин Иден". Upd. Еще вот написал пост про acceptance: http://xeno-by.livejournal.com/8538.html.