Если нельзя, но очень хочется, то нужно обязательно и ничего в мире не стоит того, чтобы делать из этого проблему!


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

суббота, 24 мая 2014 г.

Как давать фидбек?

Все тот же Эриксоновский гипноз... Сейчас его как-то много :) уже три техтока на эту тему, сам прохожу тренинги, практикуюсь, читаю. 

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


Очень хорошее видео.

Еще я, когда прихожу в гости в офис (да любой), немного вижу как люди дают друг другу фидбеки. Если присутствует спешка, дедлайн, задача не решена в срок исполнителем - конечно же фидбек дается через критику. Неприятный, часто эмоциональный: "Ну как ты мог опять завтычить? Ну как с тобой работать после этого?" Как? Шутишь? Учиться иди. А если надоело все - идти в отпуск, а потом на тренинг учиться софтскилзам. Люди очень любят соответствовать твоим ожиданиям. 

И вот чему сейчас учусь - давать фидбек качественно, с элементами того, что узнал за последние месяцы. Итак есть я и есть коллега. Коллега делает что-то не так (по моему). Допустим он не пишет комментарии к коммитам. Можно по классике сказать ему "чувак, ты не пишешь коммиты, пиши их, потому как если не будешь то...." но это идея, совет. А советы не работают. Кроме того, пока я даю ему этот совет, то скорее всего упущу из виду что-то, в чем он преуспел и может быть заставлю его грустить по этому поводу. Это не ок. Что же ок? 

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

Конечно же нет никакой гарантии, что коллега начнет писать коммиты после этого, но уж точно будет внимательнее следить за тем, как он классно поддерживает свой код. И наверняка начнет укреплять эти навыки - его ведь за это хвалят. Где-то там когда-нибудь появятся и комментарии к коммитам. Или не появятся :) Но точно появится что-то другое. 

Рассказывай своим друзьям/коллегам истории их успеха, даже если это сейчас кажется не очень-то и близким к правде. Рассказывай - и они станут еще успешнее! Ведь ты уже так хорошо преуспел в этом деле ;)

Как-то так. 

Обходим массивы

Недавно случилась задача. В ходе реализации алгоритма игры 2048.

Был двухмерный массив - поле. И (допустим) один полезный метод, с какой-о сложной логикой модификации содержимого поля.
public class Numbers {

    public static final int NONE = 0;
    private final int size;
    private int[][] data;

    public Numbers(int size) {
        this.size = size;
        data = new int[size][size];
    }

    private void merge() {
        for (int y = 0; y < size; y++) {
            for (int x = 0; x <= size - 1; x++) {
                if (data[x][y] == NONE) continue;

                for (int x2 = x - 1; x2 > -1; x2--) {
                    if (data[x2][y] == NONE) {
                        data[x2][y] = data[x2 + 1][y];
                        data[x2 + 1][y] = NONE;
                    } else if (data[x2][y] == data[x2 + 1][y]) {
                        int val = 2 * data[x2 + 1][y];
                        data[x2][y] = val;
                        data[x2 + 1][y] = NONE;
                        break;
                    } else {
                        break;
                    }
                }
            }
        }
    }
}
Реализован был случай прохода сверху вниз, справа налево. Так случилось, что надо еще 3 версии подобного метода, в котором перебор будет еще:
- сверху вниз, слева направо
- слева направо, снизу вверх
- слева направо, сверху вниз
Но писать еще три метода методом копипаста как-то не хотелось. Так же была попытка написать мострообразный метод, в котором циклы тюнятся через спец константы - свой набор констант для своего кейса. Это было громоздко и не читабельно.

Решение приснилось :) Им и поделююсь. Суть вкратце в том, что для начала мы вводим интерфейс доступа к массиву вместо непосредственного его использования
public class Numbers {

    public static final int NONE = 0;
    private final int size;
    private int[][] data;

    public Numbers(int size) {
        this.size = size;
        data = new int[size][size];
    }

    private void merge(Mirror data) {
        for (int y = 0; y < size; y++) {
            for (int x = 0; x <= size - 1; x++) {
                if (data.get(x, y) == NONE) continue;

                for (int x2 = x - 1; x2 > -1; x2--) {
                    if (data.get(x2, y) == NONE) {
                        data.set(x2, y, data.get(x2 + 1, y));
                        data.set(x2 + 1, y, NONE);
                    } else if (data.get(x2, y) == data.get(x2 + 1, y)) {
                        int val = 2 * data.get(x2 + 1, y);
                        data.set(x2, y, val);
                        data.set(x2 + 1, y, NONE);
                        break;
                    } else {
                        break;
                    }
                }
            }
        }
    }

    interface Mirror {
        int get(int x, int y);
        void set(int x, int y, int val);
    }
После этого используем разные реализации этого фильтра, один нормальный:
class XY implements Mirror {
    @Override
    public int get(int x, int y) {
        return data[x][y];
    }

    @Override
    public void set(int x, int y, int val) {
        data[x][y] = val;
    }
}
и три зеркальных
class _XY implements Mirror {
    @Override
    public int get(int x, int y) {
        return data[size - 1 - x][y];
    }

    @Override
    public void set(int x, int y, int val) {
        data[size - 1 - x][y] = val;
    }
}

class Y_X implements Mirror {
    @Override
    public int get(int x, int y) {
        return data[y][size - 1 - x];
    }

    @Override
    public void set(int x, int y, int val) {
        data[y][size - 1 - x] = val;
    }
}

class YX implements Mirror {
    @Override
    public int get(int x, int y) {
        return data[y][x];
    }

    @Override
    public void set(int x, int y, int val) {
        data[y][x] = val;
    }
}
А метод merge дергаем как-то так
merge(this.new _XY());
merge(this.new Y_X());
merge(this.new XY());
merge(this.new YX());
Вот и вся магия...

вторник, 20 мая 2014 г.

Николаев, ивенты

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

----------------------------------------

Вт Рефакторинг - штука, о которой все знают и часто используют. Вроде как полезно, но порой приводит к нежелательны последствиям. Но чаще на него вовсе нет времени - добавить иф или разделять класс? Добавить иф! И так проект превращается в полную квестов и глубокую жопу веселую карусель. А еще и заказчик не всегда покупает рафакторинг у команды - как это неделю что-то делаете, а видимого результата - 0. А он нужен проекту. И вот как так рефакторить, чтобы это не превращалось в переписывание проекта? Как делать рефакторинг безопасно? Как начать получать от него удовольствие? Как сделать так, чтобы заказик был не против? Все это и еще немного другого мы обсудим вместе на нашем техтоке.
----------------------------------------

Чт Test Driven Development - штука, о которой многие слышали, кто-то пробовал. Штука достаточно сложная в реализации, потому как надо поломать свой моцк. Но на выходе - более предсказуемая разработка. Код под контролем. Код более OOP. Отсутствие стресса в процессе. И даже Debug - то без чего, казалось бы, невозможна разработка - так же можно исключить. На это всем и ускоряемся. 

Это будет необычный техток. Это будет работа на практике. Берешь свой ноут. Берешь свой любимый язык программирования. Берешь пару часов своего времени и айда с нами играться в codenjoy 2048. Мы будем проходить эту игру путем написания своего AI для решения этой головоломки, но с тестами, по TDD. 


Чтобы подготовиться к codenjoy - необходимо написать свой websocket клиент для подключения к игровому серверу (есть клиент для java)

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

----------------------------------------

Пт И вроде бы поставил цель, и все ясно с ней, но она как-то не достигается - все приходится заставлять себя, дисципилинировать/мотивировать/стимулировать... Если с какими-то твоими целями случается так, значит происходит одно - с целью согласно твое сознание, но бессознательному цель не нравится. Скорее всего такая цель в такой формулировке не будет выполняться. Почему? Об этом разберемся на нашем техтоке на тему Эриксоновского гипноза

Зацепим:
- сознание/бессознательное - роли, глюки, способ общения
- что есть транс - насколько это естественно? (забегая наперед - бытовой транс занимает у любого здорового человека несколько часов в день - это всякие "задумался", "залип", поездки в метро на работу/домой, чтение книги, ...) Научимся распознавать его. 
- что такое гипноз? мифы навязанные СМИ и возможности которые открывает при постановке/достижении целей. 
- научимся ставить цели через ВАК образ (ВижуСлышуЧувствую). 
- немного "позалипаем"

----------------------------------------

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

Но у хакатонов есть недостатки. Их проводят не часто и не всегда на тему, которая нравится тебе. А ведь в твоем арсенале есть парочка pet-project, которые возможно ты бы хотел показать коллегами, получить фидбек, иметь возможность развивать вместе. 

Если это так - тебя заинтересует новое явление, зародившееся не так давно и разросшееся по всему нашему Земному Шарику - явление называется Хакерспейсы. Это лаборатории.... хм.. впрочем посмотри лучше сам... https://www.youtube.com/watch?v=IFOF6YNVBUA (TEDx доклад, 18 мин, есть русские субтитры)

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

-----------------------------------------

Сб. Знаешь, что такое Codenjoy? Нет?! Тебя ждет настоящее открытие! Это веселый игровой ивент для программистов, в котором ты будешь писать своего бота (AI) для прохождения какой-то заранее определенной игрушки. Ты будешь играть не сам - ты будешь играть с напарником. Более того, вы будете играть не сами - вы будете играть вместе с другими парами, соревнуясь за звание авторов лучшего алгоритма. 

Знаешь о чем игра “2048”? Нет?! Тебя ждет настоящее открытие! Эта игрулька в последнее время захватила умы (и свободное время) многих IT-ребят. Теперь у тебя есть возможность закодить свою решалку этой игры. Да-да-да... Мы знаем, что алгоритм решения уже лежит на Хабре, а потому мы взяли и изменили немного правила игры. Играть теперь можно на поле любого размера. Играть теперь будем с препятствиями. Играть теперь будем до 4M! А самым увлеченным предложим ряд других интересных модов. Опять же, играть мы будем не ручками, а кодом!

Приходи к нам! Будет весело!

---------------------------------

Крейзи! Что тут сказать. Но теперь я понимаю почему так происходит. На самом деле в к половине ивентов я уже готов без подготовки. Тут все просто. Если раньше меня просили приготовить доклад на какую-то тему и я его готовил, заучивал, слайды писал, планы... То теперь все несколько иначе - темы предлагаю из тех, которые сейчас живые - то что учу сейчас и и так рассказываю друзьям в кафешке на вопрос "как дела, что нового". Эти темы не надо готовить - просто взял и рассказал. К этим темам не надо слайдов - ты уверенно себя чувствуешь с флипчартом. Фристайл и опыт выступления в прошлом позволяют рассказать вообще что угодно, ну а тут еще твоя тема... Итак вывод нумбер 1 - больше рассказывай про то, чем сейчас живешь. Если нет конференции на эту тему - просто собирай техток в своей компании, своих друзей - расскажи им. Заинтересованные всегда найдутся.  

Но это еще не все. Почему бы не выбрать одну тему, не запланировать ее хорошо и не рассказать только ее. Зачем так много? Статья сегодня попала в руки мне. Читал и плакал... "Люди Хаоса" называется. Это в дополнение к статьям "Спонтанное планирование для тех, кто ненавидит тайм менеджмент" и "Формула успеха: спонтанное планирование и жизнь в потоке"

Пару цитат. 
Эти люди чувствуют себя в неупорядоченных пространствах и процессах, как рыбы в воде. Чем больше неопределенность, чем меньше понятных схем и линий поведения, чем выше непредсказуемость, тем им комфортней. ... в устоявшихся системах такие люди действуют нелогично, если смотреть со стороны. ... они как будто специально создают себе условия аврала, часа икс, а потом носятся с выпученными глазами, подключают все возможные и невозможные ресурсы, за 15 минут делают то, на что требовалось два месяца системной работы по регламенту, находят очередные новые выходы из ситуации и пр. ...
Зато они прекрасно управляются с работой в режиме МЧС, в ситуациях «все пропало», «надо было еще вчера», «катастрофа-мир-рушится». В системах стихийных, без форм и норм, на тех участках, где нет структур, пошаговых схем, макросценариев.
Если область неизвестного в предстоящем деле/задании мала для хаотика, то он ее будет расширять десктруктивными способами, внесением в процесс стихийных элементов — «даешь хаос!». Неосознанно, конечно, просто иначе он помрет. Да, хаотику физически плохо, когда перед ним есть четко определенный фронт работы, не важно, определен этот фронт кем-то или им самим. А так как жизнь хаотикам дорога как память, они будут любой ценой отменять определенность, упорядоченность, структуру (даже воображаемую в виде планов), отвоевывать себе пространство для жизни. Самая элементарная возможность утолить свою потребность — дождаться дедлайна, нестабильности, неравновесия. А затем героически изобрести очередную импровизированную схему выхода, сдать отчет в последнюю минуту и упасть, тяжело дыша. «Все для фронта, все для победы» — гвозди бы делать из этих людей.
Аминь! Пусть живут Хаотики...

пятница, 16 мая 2014 г.

Этапы изменения

Достигший молчит.Идущий информирует готовых.Прикоснувшийся умничает и поучает.Невежественный не понимает, боится, обвиняет и нападает.А понимающий — смеется!(Сумиран "Диалоги Дзен")
Заметил за собой, что на пути к переменам есть несколько этапов:

1) Не знаю, что что-то делаю не так и делаю "не так" и дальше.
2) Узнал, что делаю "не так", но не перестаю делать как раньше. Много критикую других за это.
3) Начал пробовать делать по-новому. Что-то даже получается. Вижу, как люди вокруг делают это не правильно. Пробую им помочь, малорезультативно.
4) Думаю, что окончательно выбрал делать по-новому. Но все еще подмечаю, что мир несовершенен в этом вопросе. 
6) Перестал замечать, люди это делают "не так", потому что делать "не так" - тоже ок. Окружающих как магнитом тянет ко мне за советом как раз в этой области. 
7) Давно забыл, что когда-то над этим работал. Люди вокруг перестают задавать осознанно вопросы на эту тему, но им почему-то нравишься.

Искал другую картинку, но нашел вот эту, тоже классная


среда, 14 мая 2014 г.

Старая добрая какашулька на окне

Представь окно, обычное окно на улицу из твоего рабочего кабинета... 

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

Там, за окном, постоянное движение... А в комнате тепло и уютно... И если захочешь, тихо...

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

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

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

И вроде окно чистое, но есть вот это вот пятнышко, которое вовсе не мешает и постоянно присутствует...

Оно просто есть и все...

Быть может оно имеет какую-то незамысловатую форму, а может и наоборот формой напоминает что-то конкретное... Это не важно. Ведь оно просто есть...

И вот в какой-то момент, сидящий в этой комнате как-то непривычно долго засматривается на него, на это пятнышко... Задумываясь над тем, а как оно тут появилось, ведь оно не всегда тут было.... Долго-так изучает его....

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

Нет пятнышка больше...

И вроде ничего особо не поменялось... Но что-то все же изменилось...

Конец :)

Простая математика - заработаем на аренде

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

/**
 * Created by Sanja on 14.05.14.
 */
public class Main {

    public static void main(String[] args) {
        int apartmentPrice = 28000; // $ всего за квартиру
        int rentPrice = 1500/13; // $ в месяц аренды (13 - курс $)      
        int monthlyInvestment = 1000; // в $ в месяц
        
        int apartmentsCount = 0;
        int cache = 1;
        int month = 0;
        int myActive = cache;
        int passiveIncome = 0;
        int investment = 0;

        do {
            passiveIncome = apartmentsCount * rentPrice;
            investment = passiveIncome + monthlyInvestment;

            info(apartmentPrice, apartmentsCount, cache, month, myActive, passiveIncome, investment, monthlyInvestment);

            month++;
            cache += investment;
            if (cache > apartmentPrice) {
                cache -= apartmentPrice;
                apartmentsCount++;
            }

            myActive = apartmentsCount*apartmentPrice + cache;
        } while (myActive <= 1000000);

        System.out.println("Поздравляем - Вы долларовый миллионер!");
        info(apartmentPrice, apartmentsCount, cache, month, myActive, passiveIncome, investment, monthlyInvestment);
    }

    private static void info(int apartmentPrice, int apartmentsCount, int cache, int month, int myActive, int passiveIncome, int investment, int monthlyInvestment) {
        System.out.println(String.format("Год: %s, Месяц: %s, Квартир купелено: %s, Пассивный доход: $%s, " +
                "Новая квартира будет через %s мес. (каждые %s мес.), Мой актив составляет: $%s (а если бы просто собирали, то $%s)",
                month / 12, month % 12, apartmentsCount, passiveIncome,
                (apartmentPrice - cache)/investment, apartmentPrice/investment, myActive, month*monthlyInvestment));
    }
}
Год: 0, Месяц: 0, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 27 мес. (каждые 28 мес.), Мой актив составляет: $1 (а если бы просто собирали, то $0)
Год: 0, Месяц: 1, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 26 мес. (каждые 28 мес.), Мой актив составляет: $1001 (а если бы просто собирали, то $1000)
Год: 0, Месяц: 2, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 25 мес. (каждые 28 мес.), Мой актив составляет: $2001 (а если бы просто собирали, то $2000)
Год: 0, Месяц: 3, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 24 мес. (каждые 28 мес.), Мой актив составляет: $3001 (а если бы просто собирали, то $3000)
Год: 0, Месяц: 4, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 23 мес. (каждые 28 мес.), Мой актив составляет: $4001 (а если бы просто собирали, то $4000)
Год: 0, Месяц: 5, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 22 мес. (каждые 28 мес.), Мой актив составляет: $5001 (а если бы просто собирали, то $5000)
Год: 0, Месяц: 6, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 21 мес. (каждые 28 мес.), Мой актив составляет: $6001 (а если бы просто собирали, то $6000)
Год: 0, Месяц: 7, Квартир купелено: 0, Пассивный доход: $0, Новая квартира будет через 20 мес. (каждые 28 мес.), Мой актив составляет: $7001 (а если бы просто собирали, то $7000)
...
Год: 33, Месяц: 9, Квартир купелено: 34, Пассивный доход: $3910, Новая квартира будет через 0 мес. (каждые 5 мес.), Мой актив составляет: $979081 (а если бы просто собирали, то $405000)
Год: 33, Месяц: 10, Квартир купелено: 35, Пассивный доход: $4025, Новая квартира будет через 4 мес. (каждые 5 мес.), Мой актив составляет: $983991 (а если бы просто собирали, то $406000)
Год: 33, Месяц: 11, Квартир купелено: 35, Пассивный доход: $4025, Новая квартира будет через 3 мес. (каждые 5 мес.), Мой актив составляет: $989016 (а если бы просто собирали, то $407000)
Год: 34, Месяц: 0, Квартир купелено: 35, Пассивный доход: $4025, Новая квартира будет через 2 мес. (каждые 5 мес.), Мой актив составляет: $994041 (а если бы просто собирали, то $408000)
Год: 34, Месяц: 1, Квартир купелено: 35, Пассивный доход: $4025, Новая квартира будет через 1 мес. (каждые 5 мес.), Мой актив составляет: $999066 (а если бы просто собирали, то $409000)
Поздравляем - Вы долларовый миллионер!
Год: 34, Месяц: 2, Квартир купелено: 35, Пассивный доход: $4025, Новая квартира будет через 0 мес. (каждые 5 мес.), Мой актив составляет: $1004091 (а если бы просто собирали, то $410000)
34 года, это конечно круто :) Надо искать что-то более оптимальнее. Больше ежемесячно откладывать, дешевле квартиры, по больше за аренду... Ну и изучать разные ускоряющие приемы...

Форма для подсчета кому сколько вернуть

Простая формочка для подсчета кому сколько вернуть денег после похода, пускай тут полежит....


В хозяйстве пригодится :) 

понедельник, 12 мая 2014 г.

воскресенье, 11 мая 2014 г.

Шашлыки под дождем

Запланировали сделать шашлычки. Но погода в этот день мягко говоря не солнечная была. Шашлык замаринован, друзья расчистили свои планы - ничего не поделать, будем выкручиваться.

Купить тент не получилось - все инет магазины были закрыты на выходные. Вспомнилось, что у двух моих палаток есть тенты которые можно было бы растянуть на дереве. А так как мы agile то было решено их взять с собой, а там на месте разберемся. И да - веревку надо!

Вышли на улицу - все кап кап кап... Но ничего! Мы жеж рождены, чтобы сказку сделать былью... Тут же полез на дерево. Скользко, неудобно. Чуть не упал...


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


Так второй тент был подтянут точно и за время вдвое быстрее. Осталось только поднять середину палатки - что мы и сделали с помощью веток-подпорок.


С комментарием "где то так я себе и представлял все наши приложения", Олег одобрил проект и сделал фотку 


А вот Саня фиксит баги на продакшене :)


Вслед за этой инженерной мыслью мы придумали сделать столик. Топорик взяли у Вахтерши. Пиломатериалы нашли на соседней свалке стройматериалов. Там же гвозди. Лопатку саперную так же быстро разыскали. 1,5 часа и столик готов! 


Ножки хоть и немного кривоватые, зато поверхность стола абсолютно ровная - мы выкачали из Android маркета программу уровень :) 


Другие фотки по теме тут.

Я заметил, что в непогоду как-то по-особенному хочется что-то мастерить. С чем это связано пока не понял, может быть не хочется мокнуть даром? :) В итоге +1 столик на площадке - принцип скаута в действии. Приятно осознавать, что в мире вокруг все налаживается. 

А вообще шашлык в непогоду нам всем очень понравился. Было мокро. Было болото. Но резиновые сапоги, дождевики и другие приспособления нам очень помогли. Вместе со всеми неудобствами было что-то еще... 

среда, 7 мая 2014 г.

Зачем люди ходят в поход?

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

А все просто. Мы заточены жить в гармонии с природой. Мы заточены жать как первобытный человек с мускульной работой и добычей пищи в лесу. Свежий воздух, растительная пища (или ладно, животного происхождения, но добытая руками). Это с нами происходило еще не так уж и давно. Не сумел так быстро мозг Homo Sapiens перестроиться. Вот и отдаем дань в виде вылазок на природу в ущерб цивилизации, удобству, комфорту. 

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

Например друг приглашает в первый поход с ночевкой в палатке, или первый сплав по речке, или еще что. Тут уже надо собираться. Рюкзак набивать всяким полезным. Это уже не пикник, где на машине все привезли и вечером все увезли назад, а дома душ и спатки. Это немного дальше от цивилизации чем просто пикник. За тем и нужен рюкзак. Туда ты собираешь все то, что тебе может пригодится в дороге. И что туда собирается в первый поход? 

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


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

Этого всего не надо в бетонном городе. А если и надо - заказал такси в дождь, поехал домой, переоделся и все ок! А в походе только вперед (или сколько же назад, что обычно одно и то же). Хорошо, если более опытные коллеги поделятся всем необходимым... А если они тоже впервые? 

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

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

Что делать? Выбирать компании и маршруты так, чтобы 80% было в походе все известно/понятно, а 20% можно было потерпеть. Если сходить на пикник до вечера уже на 100% комфортно, то может стоит собрать небольшой рюкзачок и поехать на какую-то базу - пол дня погулять по лесу с gps а потом вернуться на базу, принять душ, отдохунть и на следующий день снова пойти походить (или отлежаться, если так хочется - пусть все идут). Потом можно попробовать так же но с ночевкой в палатке. Можно стать палаткой во дворе дачи и посмотреть как это. Если никак - зайти домой :) У каждого свои 80% уверенности и 20% дискомфорта. 

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

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

Как-то так...

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

Коучинг в горах

Недавно был в походе. Три дня две ночи. Разговоры за кострами. Классно получилось. Что я понял там. Чуть больше того чем хотелось бы заниматься. Такой себе проект на 3-4 дня в месяц. Да я хочу каждый месяц быть в горах. Пока не знаю как это, но похоже пришла идея, как совместить это с другими моими увлечениями: IT, коучинг/психология, походы/путешествия.

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

А потом вернуться назад и имплементить. Пока это как хобби. Так сказать потестить. Но заявки принимаются начиная от сегодня. Если идея нра - пиши в личку (skype) или в комментах.


Фоткаем звезды ночью: Большая и Малая Медведицы

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

А теперь из за чего весь сыр-бор


Кстати окна дома я закопипастил до неузнаваемости, чтобы мало ли...

Выдержка 10 секунд. Чувствительность (ISO) 800. Фокус на бесконечность. Фоткал со штатива с панорамной головкой с пультом дистанционного управления кнопкой спуска. 

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

Выдержка 10 секунд нужна для того, чтобы не было заметно движение звезд вокруг полярной звезды (30 секунд - уже заметно). 

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

Фокус было веселей всего выставлять. Чуть не туда крутанул - все размыто. Пришлось поиграться. Максимальный зум - смотрим на глаз, чтобы самая сркая звезда оставалась точкой. Потом нацеливаем на какую-то звездочку помельче и запускаем на 200 секунд, чтобы увидеть ее трек. Если трек тонюсенький - значит все ок, если же нет - либо на планету навели (Юпитер, например) или не в фокусе звезда. Путем легкого подкручивания через парудесят минут получаем звуздочку в фокусе. Да, тут все в ручную - автомат не понимает, что такое звезды ночью :)

Так же поможет аппликушка на Android телефоне от Google Sky Map - очень помогает разобраться где что. С ее помощью я изучаю новые для меня созвездия и ищу планеты.