Category: искусство

Верхний пост :)

Основной мой вид деятельности на данный момент - разработка ПО в области embedded. Опыт работы - с 2001 года. Сайт-визитка по этой теме: http://avl2.info/.

Кроме этого, есть еще несколько направлений, мне интересных, в которых я в той или иной степени "продвинулся". Никак не связанных с программированием.

1. Естественные роды. Все - на основании собственного (почти :)) опыта рождения двух детей. Я оба раза присутствовал на родах, во второй раз мы вместе с женой составляли план родов, выбирали и общались с акушерками, ходили на курсы подготовки и многое-многое другое :) Опыт вылился в сайт http://ru.naravniporod.com/. Буду рад ответить на вопросы, если кого-то мой опыт заинтересует подробнее.

Если же кому-то предстоят роды в Словении и его будет страшить неизвестность и неопределенность - как, где, с кем и т.п., тоже буду рад помочь, пишите!

2. Фотография. Началось это увлечение еще с 1996 года, с фотоаппарата "Смена 8М" и черно-белой пленки, проявки ее в бачке и печати фотографий в ванной под увеличителем и красным фонарем. Кое-что из того, что получается сейчас, можно увидеть здесь по тегу "Фото". Коммерческое предложение с ценами и вариантами - на еще одном моем сайте http://www.lepitrenutki.com/, который, правда, на словенском языке - для целевой аудитории.

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

3. Гимнастика для новорожденных. С первым ребенком я открыл для себя динамическую гимнастику. Со вторым - познакомился с абсолютно другим подходом, автором которого является словенка Андрея Семолич, и который она назвала "Педокинетика". (Сайт тоже на словенском). Подход очень и очень интересный, отлично дополняет собой динамическую гимнастику, со вторым ребенком я прошел всю ее методику, начав с 6 недель и закончив моментом, когда малыш начал делать первые шаги. И очень доволен результатом. В мае 2013 года я получил сертификат инструктора "Педокинетики" первого уровня (после двух лет обучения, в том числе более 200 часов практики с реальными детьми и 6-часового экзамена на реальных и непростых группах). Впереди еще минимум три года обучения :) Так что в ближайшее время появится еще одно направление в моей деятельности :) По которому я тоже буду рад помочь тем, кого это заинтересует!

40. Установи меня

(В оригинале - Install Me)

Я не просто зашел поинтересоваться вашей программой.

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

Если исследования о работе зрительной системы не врут, то я уже прочитал заголовок и ищу синие подчеркнутые слова «Скачать прямо сейчас». Да, кстати, если я пользуюсь Линуксовым браузером и у меня IP из Великобритании, то скорее всего мне понадобится версия под Линукс с европейского зеркала. И не надо меня об этом спрашивать. Предполагая, что после клика сразу же появится окно загрузки, я указываю, куда сохранить файл и продолжаю чтение.

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

Первый барьер – это инсталляция. Вам не кажется этой проблемой? Тогда зайдите в свою папку Download и посмотрите, что там лежит. Множество архивов, не так ли? И сколько из этого вы реально используете? У меня лишь треть делает что-то еще, кроме занимания места на диске.

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

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

Если ваше ПО – это библиотека, то я продолжу изучать ваш сайт в поисках инструкции о быстром старте. Я хочу также аналог “Hello world” из пяти строчек и без лишнего мозготраха и с подробным описанием того, что должно получиться, если его запустить. Никаких огромных XML файлов или шаблонов, а всего лишь маленький скрипт. И да, конечно же я уже загрузил себе фреймворк вашего конкурента, того самого, который на всех форумах пишет, что его приложение на порядок лучше вашего. И если до сих пор все работает, тогда я загляну в tutorial.

Упс, а что, у вас нет tutorial-a? На том языке, который я понимаю?

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

Я все еще вас не убедил?

Автор оригинала - Marcus Baker

Перевод мой, при использовании ссылка на мой живой журнал обязательна!

20. Начните отладку процесса установки как можно раньше

(В оригинале - Deploy Early and Often)

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

Инсталляция – самая первая вещь, которую увидит заказчик. И простая процедура инсталляции – первый шаг к надежному (или как минимум легко отлаживаемому) процессу поставки. Установленное ПО – то, что будет использовать ваш заказчик. Но если в процедуре установки будут проблемы, то у заказчика возникнут вопросы к вам еще до того, как он начнет использовать ваше ПО.

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

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

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

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

Автор оригинала - Steve Berczuk

Перевод мой, при использовании ссылка на мой живой журнал обязательна!

5. Красота и простота

(В оригинале - Beauty Is in Simplicity)

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

«Красота стиля, гармонии, грации и ритма определяется простотой» - Платон.

Нам всем как разработчикам ПО стоит почаще пользоваться этой цитатой как руководством к действию.

Мы добиваемся того, чтобы наш код обладал следующими качествами:

  • Читаемостью;
  • Сопровождаемостью;
  • Скоростью разработки;
  • Красотой.

И Платон говорит нам, что простота – это то, что открывает дверь для всех этих свойств.

Что такое красивый код? Вопрос, возможно, достаточно субъективный. Восприятие красоты сильно зависит от индивидуального опыта, как впрочем и любое другое восприятие. Люди, выросшие в среде искусства, воспринимают прекрасное не так, как люди, выросшие в технической среде. Сторонники искусства видят красоту в коде, сравнивая программирование с художественным искусством, а сторонники науки больше говорят о симметрии и золотом сечении, пытаясь свести все к формулам. И мой опыт говорит, что основанием для аргументов обеих сторон является именно простота.

Подумайте об исходном коде, в котором вам пришлось разбираться. Если вам этого делать не приходилось, то прекратите читать эту статью и прямо сейчас найдите какой-нибудь open source проект для изучения. Серьезно! Я не шучу! Найдите в интернете что-нибудь на каком-нибудь языке программирования по вашему выбору, написанное каким-нибудь известным экспертом.

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


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

Красота рождается из простоты.

Автор оригинала - Jørn Ølmheim

Перевод мой, при использовании ссылка на мой живой журнал обязательна!