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


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

вторник, 31 декабря 2013 г.

Волшебный пендель

Общались с Другом недавно. Тема разговора - как начать делать свое дело. Оставлю, чё оговорили, тут...

1) Сядь и напиши список того, куда ты хочешь попасть, где ты сейчас и кто тебе в этом поможет. Напиши в стиле mind map.

 2) Сразу же решить все целиком не получится. Разбей большую задачу на серию мелких. Пусть у тебя на бумаге будет всего лишь 1% всего того, что предстоит сделать – этим и займись – задачи новые будут появляться по ходу делания. Никто и никогда не знает сразу, как получит то, что он хочет.

 3) Обсуди мечту с кем-то. Мечтай до тех пор, пока не увидишь/прочувствуешь мечту. Ты поймешь, когда это случилось – тебе тут же захочется бросить мечтания и начать действовать – сделать что-то из списка, незамедлительно.

4) Завтра = никогда. Сделай какой-то первый шаг уже сейчас, сегодня днем, сегодня вечером, но не «завтра утром», «с понедельника», «с 1 числа», «нового года»… Завтра = никогда!

5) Выбери дерзкую мечту. Мечту мечтать можно, она может быть любой по сложности. Не важно как туда попасть – дорога откроется идущему. Главное, что там можно побывать в своих мечтах. Мечтай в 10х-100х раз больше того, что сейчас у тебя есть (к чему ты по твоему готов). Хоть это и мечты – мозг не отличает их от того, что с тобой было в прошлом. Для него твои фантазии и то, что реально было – это одно и тоже. Это было. И дальше он будет действовать исходя из того, что это уже 1 раз было. Мечтание – это репетиции событий в будущем.

6) 10-15% на прогресса и тебя уже будет затягивать в пылесос твоего проекта. 0-15% - будет отталкивать от него. Готовься каждый день делать что-нибудь через не могу/не хочу/нафиг надо. Чуть позже придет привычка, мечта будет притягивать сильнее, а друзья будут спрашивать «ну что как там?» - это все будет везти к целям.

7) Говори с людьми вокруг о том, что ты делаешь – все должны знать твою новую роль. Так они смогут помочь тебе. Их друзья смогут помочь тебе. Друзья их друзей. Сарафанное радио работает. Не сразу, но со временем.

8) Деньги и время, которые ты вкладываешь в проект свой – забудь, что ты должен отбить. Ты покупаешь знания того, что не надо было делать/покупать и новые возможности сделать еще больше ошибок. Успех – это 99.9% ошибки и нерабочие алгоритмы, и только несколько успешных прибыльных схем. Зная только успешные схемы ты не станешь успешным – ошибки в мелочах, которых ты не совершил, будут мешать. Твоя задача – как можно больше разных ошибок! В это ты вкладываешь деньги и время. Их не отбить. Пока

9) «Я понимаю, что это сейчас не возможно! Но как мне это сделать?» Как можно больше вопросов оставляй без ответа. Вопросы без ответа – это хорошо. Ответ будет найден позже – через день, неделю, месяц, год…. Ты не можешь всего знать. Войди в роль вечного студента – учись каждый день. Задавай себе неудобные вопросы, вопросы на которые у тебя нет ответа. И оставляй так. На время.

10) «У меня этого нет…. Пока нет» Вставляй слово «пока» везде, где ущемляешь свой потенциал. «Пока» говорит о том, что завтра вероятно у тебя это появится. После этого легче задать вопрос «а как у меня это появится?». Все что ты говоришь сейчас – это команды мозгу действовать или бездействовать. «У меня получится» / «у меня не получится» - в любом случае ты окажешься прав. Лучше уж сказать «у меня пока это не получается». Чувствуешь разницу?

11) Меняй круг общения. Ищи тех, кто уже преуспел. Будь рядом с ними. Подглядывай за тем, как они делают свой успех возможным. Слушай тех, кто поддерживает твои начинания. А критиков слушай только для того, чтобы узнать «почему у них не получилось». Вероятно, с этим предстоит столкнуться и тебе.

12) Большая часть потенциально успешных проектов загибается на стадии идеи. Просто Автор перегорел. Чтобы этого не случилось с тобой – оставляй материальные наработки, которые не позволят тебе остановиться завтра. Для проггеров, например - пост в блог, исходный код на гитхабе, выступление на конференции.

13) Нет конкуренции. Даже если твою идею украли – это открывает новые возможности. Какие? Ищи ответы на вопрос, как это может быть одновременно полезно и мне и моему «конкуренту»? Любой ответ на этот вопрос делает из конкурента – компаньона. Это win-win решение. Спрашивай себя КАК это возможно?

14) Задавай себе больше открытых вопросов: Сколько…? Как…? С кем….? Когда….? Где….? У кого….? Вопрос считается открытым, если подразумевает в качестве ответа больше чем банальные «да»/«нет»/«нинаю». Не ограничивай себя количеством ответов – один-два это крайне мало. «Каким еще образом можно добиться этого?» Давай мозгу задачи регулярно – только получил какой-то ответ на вопрос, пока проверяешь его на практике – пусть мозг подумает над другими вариантами. Пусть вопросы остаются без ответов. Это хорошо. Это тренирует его. Если мозг молчит в ответ на вопрос – он не отморозился, он продолжает думать. Получение ответа нельзя запланировать, как говорится «самые умные идеи приходят в душе» - в момент, когда ты расслабишься и не будешь думать над проектом.

15) Как то, что ты сейчас делаешь/думаешь помогает твоему проекту? Относись критически к тому, как ты проводишь время, какие мысли думаешь, с какими людьми общаешься. Как они тебя везут к твоим целям? Стоило тратить эмоции и ругаться с вахтершей в подъезде? Стоило ли яро обсуждать как политики не правы? Это все поможет? Делай только то, что поможет стать ближе к твоим целям. Ищи комбинации и формулировки, при которых то, что ты вынужден делать – тебя везет. Если это не случилось – перестань немедленно! Займись другим!!

 16) Найди напарника. С ним вместе вы можете обсудить идеи. С ним вы можете порадоваться успеху. Ему ты можешь пообещать сделать что-либо в срок. Он может задавать тебе неудобные (но крайне необходимые) вопросы. Он может тебя по-дружески покритиковать. Он может взять на себя часть забот по проекту. То же ты сделаешь для него. Там где двое – там не страшно. Три – много. Один – мало. Два – самое оно.

17) Оставляй следы. То, какие ошибки ты уже сделал, стоит записывать. Записывать и оставлять там, где это могут найти последователи. Их это ускорит. Они будут благодарны. Никогда не знаешь где и когда вы повстречаетесь в будущем. И как будете друг другу полезны. Но оставляя следы ты полезен уже сегодня. Заведи тематический блог.

18) То что ты делаешь должно быть полезно миру. Это да. Но важно, чтобы это было интересно тебе. То чем ты занимаешься должно тебя вдохновлять. Так больше шансов преуспеть. Если на выходных ты не хочешь думать о работе, если тебе неприятно это делать в отпуске – ты занят не тем. Домешивай в работу хобби. Превращай хобби в работу. Не разделяй их. На все уходит твое время. А оно в отличие от денег - ограничено. 

19) Для старта вовсе не обязательно иметь 100 000$ денег и офис. Все вокруг думают, что надо стартовый капитал - это их сдерживает. Не получишь ты денег до тех пор, пока не поймешь зачем именно они тебе нужны. Опиши все расходы, составь план. Представь что у тебя уже есть 100 000$, что ты с ними делаешь? Вот прям так сразу офис пойдешь арендовать? А может стоит купить мобильник с двумя симками? Обвешать район объявлениями? Не все то надо делать, что в голове сидит. Сколько тебе надо денег? На что ты их потратишь? Подсчитай и удивись, что тебе на самом деле надо не 100 000$ для старта.

20) Помни правило Парето. Большую часть той фигни, что ты делаешь можно перестать делать без вреда конечному результату. Большую - значит 60%-90%. На секундучку поверь, что это так. От чего ты бы отказался в первую очередь? Магия этого закона в том, что провернув его один раз и выкинув 80% пустых задач из своего ТУДУ, ты можешь повторить то же с оставшимися 20%. И так до бесконечности. Не веришь? Сколько домов ты построишь за 5 лет? А есть люди, управляющие проектами по застройке мегасооружений, как например этот. И ты так можешь, постоянно оптимизируя то, как делаешь свою работу. Перестань делать что-то лишнее уже сегодня.

суббота, 21 декабря 2013 г.

Codenjoy или загадка на новый год!

Что год текущий принес? Codenjoy. Это наверное самое ценное. Плюс вера в то, что смогу. Как пока не ясно, но смогу. Помог в этом фильм Indie Game. За что ему спасибо! 

Итак по очереди. Codenjoy возник на пересечении нашей с Сергеем треннинговой деятельности с желанием сделать что-то новое. Мы готовили тренинг по ТДД и проводили всевозможные ивенты. Позже появилась идея внести в тренинг игру. Был создан tetris codenjoy, провели первую встречу. Было это чуть больше года назад. Понравилось!


С тех пор tetris codenjoy проводился еще раз 8. Потом раза три snake codenjoy, который появился одной бессонной ночью т.к. был бесхозный код консольной версии змейки, который я написал в ночь после мастеркласса во Львове. Созревала мысль о бомбере, движок которого был дописан до HotCode конференции. После провели еще 7 bomberman codenjoy. Дальше допилился код трейни Алексея во время прохождения им j2se тренинга и вышел в свет minesweeper codenjoy. В него играли в Минске на Ruby и в Киеве на Agilee конференцииях. Следующая игра по заявкам играющих - battleсity. Играли пока всего 1 раз. В процессе разработки loderunner - официально еще не играли. О всех новинках тут же постим в группу на Facebook. Как говорится - следите за новостями.


Еще один факт в пользу формата CodingDojo от которого, можно сказать, наследуется codenjoy - данным форматом заинтересовался один из участников codenjoy Константин, что привело к созданию им Holder Pocker Dojo.

Если копнуть историю, то формат Coding Dojo привезли на Украину. Его привозит к нам Johannes Brodwall во время его визита в Киев на конференцию XP Days. В тот день Сергею удалось покодить с Johannes в паре решая задачку Primes Factor. Кроме интересной Primes Factor мы получили на руки инструмент Coding Dojo и так же провели его в GlobalLogic. После этого появился Automated Testing Dojo для автоматизаторов-тестировщиков. И спасибо Мише Полярушу и Андрею Дзыне за поддержку, а так же Глебу Рыбалко и  Вике Мусияченко за предложение "а придумайте чего-нибудь для автоматизаторов на конфу". Придумали.


Если говорить про фидбек. Его было много. Его было необычно много. Практически 100% позитивный фидбек. Нет, конечно же были ляпы и нам на них указывали, но "позитивным" я считаю фидбек отставленный, фидбек подробный. Кто проводит конференции знает, что собрать фидбек у ребят не так то и просто. У нас с Сергеем было так же на наших тренингах/докладах - 15-20% остальные просто леньки/нечего сказать. А тут почти каждый участник писал и писал не 1-2 слова, а абзацами! Ухтышка. Мы что-то нарыли.


Ближе к концу года наши старания увидел GlobalLogic и с тех пор мы проводим ивенты в основном на площадке GlobalLogic CodeLabs. Если раньше мы ездили по разными компаниям, то сейчас физически не успеваем, а потому проще по скайпу передать экспертизу по сетапу ивента лиду юзергруппы. Что мы с удовольствием и делаем. 

Так недавно, 23 ноября в Минске на Belarus Ruby on Rails User Group при поддержке Sergey Sergyenko впервые состоялся minesweeper codenjoy. 12 человек, пока проходили доклады на main сцене, уединились на диванчиках, чтобы заставить своего сапера обходить мины, усеянные по виртуальному полю. До этого ребята проводили несколько раз tetris codenjoy. Спасибо Сергею за интерес!


Так же недавно стало известно, что ребята из другой юзергруппы играли в tetris codenjoy незадолго после игры при поддержке XP Days Urkaine. Это приятно! Значит то, что делаем - делаем не зря. Codenjoy по сарафанному радио набирает оборотов. Со своей стороны мы стараемся, чтобы новые игры появлялись регулярно, а так же можно было играть онлайн. Раньше мы как организаторы были ботлнеком, но сейчас играть можно и без участия нас. 


Если вдруг захочется провести codenjoy у себя - сделать это просто. Вот мой скайп alexander.baglay. Пиши - расскажу о технических нюансах. Если вдруг захочется помочь проекту - так же пиши. В любом случае вот то, с чего стоит начать - написать свою игрульку. А так как проект с открытым кодом и лежит на github - сделать это можно отправив нам свой pull request. 


Что еще было? А был еще конкурс IT-Kharkiv на котором было несколько этапов отбора. И совсем неожиданно codenjoy попал в финал и занял второе место. 


Что так увлекает людей?  Ответ есть - геймификация. Дети любят играть, но дети взрослеют.  И все же любой взрослый в душе остается ребенком, а потому любит играть. И будет играть, если поверит, что ему за это ничего не будет :) В связи с этим стал разрабатывать еще один проект, который был временно назван java-quest. О нем впервые я упомянул на java.io2 конференции  


Игрульку можно потестить на портале codenjoy.com. Цель ее автоматизировать java se тренинг дав при этом инструмент учащемуся, на котором он сможет отрабатывать свои навыки. Подобных подборок головоломок в сети есть множество, например http://codingbat.com, но мне как всегда есть что сказать и это "что" отличается от того, что есть на просторах сети. Потому-то и пишу свое. Идея родилась еще два года назад, когда я понял, что постоянно рассказывать студентам одно и то же по j2se тренингу - ужасная рутина. Ну а первую строчку кода написал в этом году, после того как несколько вечеров понастальгировал в старый добрый Diablo2. Я играл и думал - а что, если для убийства монстра надо будет закодить задачку? И понеслась...


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


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

с пожеланием
Спасибо!

Эксперименты со сном



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

Когда-то давно я пробовал вставать рано утром. Ложился спатьв 21-22, чтобы гарантированно проснуться в 5 утра. Это работало, пока я себя контроллировал. Привычка за 40 дней не сформировалась и все поломалось так быстро, как только, я перестал контролировать процесс. Что еще мешало этому? Мешало то, что с друзьями вечером не погулять – 20:00 пора домой, 21:00 пора думать о сне. Мешало то, что если встать в 5 утра, то потом очень сильно захочется в обед спать и если дать себе это сделать (ну полчасика или часик), то к 22 просто не захочется спать. Не захочется в 22 не проснешься в 5. Схема ломается. Надо дисциплинить себя. Не люблю через НАДО. Сокочил. 


Вместе с тем время около 4-5 утра – оставалось самым желанным и креативным временем в сутках. Концентрация, продуктивность, креативность зашкаливает по всем показателям. Свобода эфира – нет тебе никаких писем в почте, никаких скайп сообщений, постов в соцсетях, никаких мобильников – все спят. А я творю! «Ну и что же?! – можно выключить интернет и спокойно поработать не отвлекаясь и днем». Да можно. Но днем где бы я ни был – чувствуется суета людей вокруг. Через стены. Через бетон. Через провода. Через тот самый эфир. Особенно в большом городе. А ночью необъяснимо тихо и спокойно. Спокойно внутри. Спокойно снаружи. Время как остановилось. Это сродни медитации. 
 

Далее был полифазный сон, который (вернее его неправильное использование) меня утомил и довел организм до больничного. Отчебучил по-полной. 4 часа бодрствовал. 1-2 часа сон. Для меня не было целью сократить количество часов сна, а лишь измененное сознание и сопутствующий креатив и продуктивность. И так в одних сутках помещалось по ощущениям 4 сутки. За неделю (по тем же ощущениям) проходил месяц. Просыпаясь, я знал, что есть всего лишь 4 часа на то, чтобы сделать что-то полезное. Сделать что-то одно. Все в сторону – только самое важное. И это работало! Концентрация выше некуда. 4 часа как раз тот отсек времени, чтобы довести что-то качественно до коммита. Это работало. Но ни в коем случае нельзя было прерывать ритм 4+2. Да и не получалось особо – ближе к границе 4х часов бодроствования очень хотелось спать. Это превращало меня в несоциальное нечто. Я не знал что вокруг - день или ночь. Полный рассинхрон с семьей. Но работа кипела. Через неделю-две стал ломать схему 4/2 и организм предложил мне отлежаться на больничном – долго я не сопротивлялся. Теперь знаю, что если надо сделать огромный кусок работы в минимальное время – у меня есть инструмент. 4 часа работы/2 часа сна. Но только на коротких отрезках и лучше где-то в отчуждении. Есть разные режимы полифазного сна и рекомендации. Лучше прислушиваться к тем, у кого получилось. 


Идем дальше. Были и классические совьи бодрстования. Не сплю ночью пока не спится (до 3-4- утра), а потом сплю сколько надо. Хорошо, но креатив не тот. Ночью организм физически более истощен, чем утром/днем.  Ну и потом сплю не 7-8 часов, а 10. Ну, это если не мучить себя будильником, чего вообще не рекомендую делать, поскольку будильник рубит всегда не вовремя – посреди не той фазы сна и просыпаешься побитым. Есть специальные будильники, которые следят за сном – побовал, хорошая штука. Но собственный мозг более крутое устройство. Часто бывает - перед сном говорю себе «мы проснемся вовремя, отдохнувшими и готовыми к новому дню» и просыпаюсь за 2-3-5-7 минут до звонка установленного будильника, причем не важно, сколько нужно было спать 2-4-7-8 часов – в мозгу есть некий неосознанный таймер. Так что все будильники в сторону. Договариваемся со своим мозгом перед сном. А еще лучше следить за биоритмами и просыпаться тогда, когда просыпается.


Так я выследил, что если ложусь спать в 16-22 вечера, то сплю где-то 4 часа. После просыпаюсь в 20 вечер-2 утра свеженьким, отдохнувшим как раз к началу ночного креатива. Так я могу работать еще до 4-8 часов, а там второй сон еще часов на 4-5. Пока (если не напрягаться) чаще всего получается именно так. Недостатков видимых нет. Ну, разве что светлый день иногда начинается в 13:00. Конечно же, четкого режима нет (ибо не заставляю себя), иногда на час-два раньше иногда на час-два позже. Но плюс минус схема такая, чтобы вечером выспаться и если проснуться ночью – то уже не ложиться спать и бодрствовать до тех пор, пока не захочется заснуть. И да, это начнет получаться, если накануне выспаться хорошо, отдав весь долг организму. Выспаться до ломоты в суставах. Если я сплю всю ночь как убитый, значит, я где-то задолжал. Первый шаг – выкинуть нафиг будильник и дать себе выспаться до обеда следующего дня и так пока не отпустит. А отпустит, по-моему, тогда, когда среди ночи вдруг проснешься с ощущениями – а я выспался уже. 

 
Вот прямо сейчас 00:43 и я поспал 4 часа накануне до 23. Спать ложиться планирую в ~5-6 утра потому как в 10 вставать, а в 12 начинается тренинг. Чувствую себя превосходно бодрячком. Спать не хочется абсолютно. Вот написал пост в блог и собираюсь покодить. 

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

понедельник, 9 декабря 2013 г.

Как наложить на видео субтитры

Вот только что возникла задача такая. Если она возникла раз - значит возникнет еще раз. Стоит задокументировать.

Пользоваться буду, как положено, AviSynth. Так же понадобится плагин VsFilter. Вот подробное описание того, как он работает. Для удобства возьмем Srt формат субтитров.

Плагин - это VSFilter.dll, что в архиве в папке Release Unicode. Его надо распаковать в папку C:\Program Files\AviSynth 2.5\plugins

Далее берем видеофайл, пусть source.mov и рядом с ним создаем файл subtitle.srt c содержимым
1
00:00:01,000 --> 00:00:05,000
Senator, we're making
our final approach into Coruscant.

2
00:00:05,000 --> 00:00:10,000
Very good, Lieutenant.>
Дальше создаем файл output.avs с содержимым
DirectShowSource("source.mov")
TextSub("subtitle.srt")
Далее открываем файл output.avs В любом видеоредакторе для дальнейшего перекодирования.

Вот и вся магия. Сэмпл можно скачать тут.