Category: it

Category was added automatically. Read all entries about "it".

верхний пост: кто я? про что я?

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

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

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

Здесь можно задавать вопросы. И по электропочте: duraley@gmail.com

Сложность при разработке software

Основной длящийся во времени вызов, который держит меня в профессии инженера/менеджера — вызов сложности. Сложность всегда наступает, иногда создавая впечатление хаоса, и только направленные усилия — мои и команды — этому противостоят.

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

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

Как?

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

Во-первых, это увеличение объёма текста, информации. По мере роста объёма текста, требуются всё новые и новые введения, индексы и перекрёстные ссылки; по мере добавления комментариев в код, он становится "разбавленным". В какой-то момент возникает соблазн/необходимость составить список документов, а затем и список списков и возникает новый "фронт" нагромождения.

Collapse )

эксперименты с архимейт (archimate)

Продвигаюсь всё ближе к концу книги ailev про системно-инженерное мышление (http://techinvestlab.ru/systems_engineering_thinking). Раздел 8 (последний) посвящён инженерии предпринятия, и среди прочего затрагивает тему ArchiMate (http://en.wikipedia.org/wiki/ArchiMate) — языка моделирования. Написано так соблазнительно, что мне захотелось тут же пойти разбираться подробно и рисовать диаграммы на этом языке.

Одна из причин соблазна в том, что я в своё время долго пытался понять, как мне со своими ребятами программистами в одном и долгосрочных проектов обсуждать архитектуру. Я понимал, что чтобы обсуждать архитектуру, её надо как-то описать. И текстовые описания здесь очень очень слабы.

Есть люди, которые используют UML для описания архитектуры. Но я вообще не понимаю про UML, хотя и делал какие-то попытки освоения его, раньше.

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

Я так же думал использовать ArchiMate в недавнем проекте по бизнес-анализу, но на деле до этого не дошло.

Учитывая, что это уже не первый случай такого соблазна в сторону Архимейт у меня, я таки пошёл пробовать. Вооружился бесплатным редактором — http://www.archimatetool.com/. Изучил введение к версии 2.1 (слайды) http://www.opengroup.org/archimate/2.1/ArchiMate2_intro.pdf и перечитал некоторые старые посты Левенчука на эту тему (http://ailev.livejournal.com/956829.html). Раскопал скачанную когда-то спецификацию. Пока моделирую только software уровень (архитектуру информационной системы).

production tool

провал в моделировании

Нравится мне эта мысль Анатолия Левенчука http://ailev.livejournal.com/1137728.html :

2. Современное программирование всё больше сводится ко всё более и более простым и единообразным алгоритмам, которые выполняются над всё более кучерявыми и кучерявыми данными. …

Далее жёсткий тезис: computer science это про алгоритмику по большей части, а вот про моделирование данных, про соотношение данных и реального мира -- этот кусок потерян и в образовании, и в программной инженерии. Так что с данными работают "на коленке", …

Отдельной дисциплины (практики) на тему моделирования данных в software engineering не хватает. Люди-программисты думают, что они интуитивно хорошую структуру данных сделают. А интуитивно — “на коленке” — это лотерея не в нашу пользу. (Видел и вижу это с регулярностью; и свой опыт имею.) А чтобы с вероятностью выше нуля сделать хорошую структуру (модель) данных нужна дисциплина, которая будет начинаться с моделирования мира. С моделирования того куска мира, который нужно схватить в данных.

как сделать своё маленькое интернет радио?

В теории, чтобы сделать свою маленькую интернет-радио-станцию и транслировать на ней свой skype-диалог, если ты работаешь на windows, можно использовать эти программы:

1. Virtual Audio Cables http://software.muzychenko.net/eng/vac.html -- стоит денег (от $30), но есть бесплатная оценочная версия и скидка для русских; автор из России.

2. SimpleCast by SpacialAudio http://www.spacialaudio.com/?page=simplecast -- стоит денег ($139), но тоже есть оценочная версия. VAC (см. предыдущий пункт) будет ловить данные от скайпа и передавать их в SimpleCast. (А может SimpleCast и сам справится с задачей? А может есть бесплатные альтернативы?)

3. IceCast2 http://www.icecast.org/ в качестве streaming сервера, но это уже устанавливается не на виндовс, а на отдельном интернет сервере, например, под linux. SimpleCast отправляет данные на IceCast2 (или другой streaming server), а IceCast2 -- конечным слушателям.

По идее, должны быть способы проще и дешевле. Ещё, интересно найти Mac OS-альтернативы для пунктов 1. и 2.

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