Если git при комите ругается, что у вас detached HEAD, то пофиксить можно 4-мя командами:
git branch temp
git checkout temp
git branch -f master temp
git checkout master
И, опционально,
git branch -d temp
Что при этом происходит
1. создаем временную ветку с текущего положения HEAD
2. переключаемся на временную ветку
3. сбросить master до позиции в temp
4. переключиться на мастер
5. удалить временную ветку
Thursday, September 20, 2012
Tuesday, September 18, 2012
Tetris coding dojo. Включаем мозг. Включение #0.
О чем это
Сейчас трудно найти программиста, который не знал бы, что такое ТДД или рефакторинг. Трудно найти такого, который еще и применял бы эти практики в жизни. Мне, например, повезло и я ощутил полезность всего спектра так называемых "инженерных практик" в реальной разработке. Многие ребята не могут похвастаться таким везением. Естественно, что не попробовав применить, например, ТДД на практике, сложно сделать какой-нибудь вывод о его полезности.Конечно же есть масса тренингов по инженерным практикам. Но проблема в том, что практические задания на подобных мероприятиях довольно простые. На них мы можем только отработать базовые навыки. К тому же приходится давать довольно много теории, рассматривать различныые варианты решения задачи и подводить слушателей к правильным теоретическим выводам. Не хватает практического подтверждения (или опровержения :)) правильности сделанных выводов.
Решение этой проблемы пришло само собой:
Tetris Coding dojo
Вообще Coding dojo - отличное и веселое мероприятие. Мы (я и Саша Баглай) подумали, что это подходящий формат для того, чтобы попрактиковаться в применении своихЗа основу взяли известную всем игру - тетрис. Будем учить компьютер играть в тетрис! Мало того, мы еще будем соревноваться в том, кто круче это сделает :)
Думаю, что лучше один раз увидеть, чем написать 100500 слов описания.
Пробное включение
Недавно мы с Сашей попробовали сами написать код управления фигурками. Это мероприятие выбило нас из жизни часа на 4 :). В результате пофиксили несколько багов во фреймворке. Я же научился расставлять "палочки" и "квадратики", сделал несколько небольших рефакторингов и окончательно убедился, что я тестозависим :).Код тетриса лежит на гитхабе, написан на java. Запускается одной командой (mvn jetty:run). Чуть позже напишу подробную инструкцию (если не поленюсь:)). Велкам с коментами, пожеланиями и участием.
Saturday, September 01, 2012
Вспомнил детство : ZX Spectrum, деревянные игрушки...
Говорят, что нереализованные детские мечты нужно осуществлять, ибо они как-то там мешают во взрослой жизни. Так вот, когда деревья были больше, трава зеленее, а самая навороченная компьютерная игра требовала 48Кб памяти и 0.8 Мгц частоты ЦПУ, у меня была идея фикс - победить злостных инопланетянских роботов-захватчиков в стратегической реал-тайм (!) игрушке "Nether Earth". Я бился в нее сутками, но эти гады все равно беспощадно уничтожали мою базу. Естественно, что это сказывалось на моем эмоциональном состоянии, успеваемости в школе и вообще надо было утереть нос моему товарищу, который эту игру якобы прошел.
Чудесная заставка, офигительный звук :). Без всяких звуковых карт и музыкальных сопроцессоров! Частота колебаний динамика программируется ручками :).
Настало время реванша.
Первым делом нужен эмулятор ZX Spectrum. Их как оказалось довольно много, вот хотя бы список эмуляторов под Видновс.
Но мне не нужны легкие пути, я взял эмулятор под Java - JSpeccy :). Не беда, что сайт разработчика на испанском, зато он регулярно выпускает обновления (последнее было в июне 2012 года!) в отличие от остальных.
Найти саму игру тоже оказалось несложно. На сайте Bit 16 я быстро нашел Nether Eath.
Запустил как обычно из командной строки
java -jar JSpeccy.jar
java -jar JSpeccy.jar
Круто - появилась строка ввода! Правда в ZX Spectrum она замаскирована под название компании - разработчика ;)
Дальше в меню File->Load... выбираю файл образа игры
Ожидал, что игрушка сразу запустится, но этого, естественно, не произошло :). В Синклере игры считывались с магнитофона, для чего нужно ввести команду LOAD "". Магическое нажатие на клавишу J выдало команду LOAD, а <Ctrl> + P вывел двойную кавычку.
Нажал на <ENTER> и пошла загрузка. Жаль, что звук с магнитофона не сэмулировали :)
Чудесная заставка, офигительный звук :). Без всяких звуковых карт и музыкальных сопроцессоров! Частота колебаний динамика программируется ручками :).
Запрограммировал клавиши, жму старт. Вот она - сила 3D графики! Никаких графических сопроцессоров и видеокарт. Почти "реал 3d" :).
На экране
1. Контрольный модуль, может летать и садиться на базу
2. База
На базе можно создавать роботов из имеющихся деталей. Количество деталей ограничено и поставляется заводами.
Создал первого супер робота
И выпустил его из завода
Роботом можно управлять непосредственно или запрограммировать его поведение.
Варианты поведения
- Пройти вперед / назад
- Найти и уничтожить вражеского робота / фабрику / вражескую базу
- Найти и захватить нейтральную фабрику / вражескую фабрику / вражескую базу
Я задал команду захватить завод. После того, как робот постоит на заводе 10 сек, завод считается захваченным, о чем свидетельствует появившийсе вверху слева американский флаг :).
Что особенно меня убивало в этой игре - так это управление во время боя. Для того, чтобы повернуться нужно выбрать "Move robot", а дойдя до огневой позиции успеть остановить робота, выбрать оружие для стрельбы и стрельнуть. Жутко неудобно, особенно когда по тебе стреляют несколько вражеских машин.
Вот такая нехитрая игрушка. Для середины 80х это была мега крутая игра. А сейчас даже не верится, что на 48кб можно разместить саму игру с "3д" графикой и звуком.
Кстати, вчера играл 3 часа подряд, но мою базу опять захватили подлые инопланетские роботы :(
На экране
1. Контрольный модуль, может летать и садиться на базу
2. База
На базе можно создавать роботов из имеющихся деталей. Количество деталей ограничено и поставляется заводами.
Создал первого супер робота
И выпустил его из завода
Роботом можно управлять непосредственно или запрограммировать его поведение.
Варианты поведения
- Пройти вперед / назад
- Найти и уничтожить вражеского робота / фабрику / вражескую базу
- Найти и захватить нейтральную фабрику / вражескую фабрику / вражескую базу
Я задал команду захватить завод. После того, как робот постоит на заводе 10 сек, завод считается захваченным, о чем свидетельствует появившийсе вверху слева американский флаг :).
Что особенно меня убивало в этой игре - так это управление во время боя. Для того, чтобы повернуться нужно выбрать "Move robot", а дойдя до огневой позиции успеть остановить робота, выбрать оружие для стрельбы и стрельнуть. Жутко неудобно, особенно когда по тебе стреляют несколько вражеских машин.
Вот такая нехитрая игрушка. Для середины 80х это была мега крутая игра. А сейчас даже не верится, что на 48кб можно разместить саму игру с "3д" графикой и звуком.
Кстати, вчера играл 3 часа подряд, но мою базу опять захватили подлые инопланетские роботы :(
Subscribe to:
Posts (Atom)