суббота, 27 сентября 2014 г.
Шахматы - 1000й коммит :)
В Leokom Chess (https://github.com/lrozenblyum/chess) произошёл коммит №1000 :) УРА!
И как раз в этом коммите первая реальная фича реализована на Java8!
Ярлыки:
программирование,
шахматы,
GitHub
среда, 28 мая 2014 г.
Как парно программировать онлайн на Java
А также на Javascript/Node.js/Ruby...
Возникла задачка, как же программировать онлайн парно на Java? Вроде IDE существуют онлайн но чтобы парно? Например круто так проводить TDD Game!
Решение:
- Идём на https://c9.io/
- Регистрируемся https://c9.io/site/pricing/
- Заходим на свой "Dashboard" (у меня он выглядит примерно так : )
- Создаём новый Workspace (Create new workspace)
- Для Java выбираем вариант Custom
- Жмём Start Editing и попадаем в наше новое рабочее пространство:
- Здесь можно создавать файлы и папки, и есть терминал для работы :)
- New file, HelloWorld.java:
- Для запуска, в терминале вводим : javac HelloWorld.java; java HelloWorld
(через меню работы с джавы пока нет, а например с Node.js есть!) - Чтобы работать парно - нужно просто скинуть линк на твой Workspace напарнику (что-то типа этого https://c9.io/leokom/test3), дать ему разрешение на редактирование и вперёд, к совместному кодингу, ТДД играм и прочим интересностям! (там также есть небольшие плюшки а-ля Google Docs например чат).
- Так выглядит одна из наших первых парных разработок онлайн с напарником Артуром: (здесь мы пользуемся фичей Java assert вместо JUnit assert, и соответственно запускаем виртуальную машину java с ключом -ea)
- Как и полагается хорошему облачному сервису, он обладает "машиной времени" :) File -> File revision history можно посмотреть как оно было раньше:
Удачного парного программирования!
Ярлыки:
облако,
парное программирование,
java,
TDD
суббота, 9 ноября 2013 г.
Как подключить Google Nexus 7 по USB-кабелю к Windows XP/Windows 7-компьютеру для копирования
Счастливые обладатели Google Nexus7
не всегда имеют доступ к Wi-Fi соединению,
поэтому хочется скопировать файлы с планшета на компьютер и наоборот без участия в этом процессе интернета (с помощью имеющегося в комплекте USB-кабеля).
В Windows XP эта задача решается так:
На Windows 7 работает тот же алгоритм, только без пунктов 3, 4, 5.
Удачного подключения!
UPD: Есть альтернативы - программы типа
http://www.wondershare.com/android-manager/ (платная, с бесплатным триал-периодом)
http://www.moborobo.com/ (бесплатная),
которые предоставляют красивый юзер-интерфейс для работы с устройством.
Впрочем надёжнее и очевиднее выглядит работа с файловой системой напрямую.
UPD 22.03.2014: Для удобной работы с файловой системой по протоколу MTP в Far Manager
используем плагин PortaDev http://plugring.farmanager.com/plugin.php?pid=933
Благодаря ему Nexus7 будет отображаться как обычный диск по Alt+F1/Alt+F2:
как WPD: Внутренняя память
UPD 05.04.2014: алгоритм расширен информацией о USB debugging параметре планшета
не всегда имеют доступ к Wi-Fi соединению,
поэтому хочется скопировать файлы с планшета на компьютер и наоборот без участия в этом процессе интернета (с помощью имеющегося в комплекте USB-кабеля).
В Windows XP эта задача решается так:
- Включаем "режим разработчика" на планшете:
Settings -> About tablet -> Build number - жмём 7 раз (таким образом включается режим разработчика)
Теперь станут доступны Settings -> Developer Options.
Включаем режим "отладки через USB":
Settings -> Developer Options -> Debugging -> USB debugging - Качаем USB-driver: https://dl-ssl.google.com//android/repository/latest_usb_driver_windows.zip
Распаковываем в любую папку. - Ищем файл C:\WINDOWS\inf\wpdmtp.inf (если его нету, это может свидетельствовать о том, что не установлен Windows Media Player 11, как ни странно, но для подключения Google Nexus 7 по Media Transfer Protocol он нужен - тогда бежим качать Windows Media Player...)
- В файле C:\WINDOWS\inf\wpdmtp.inf после строк
[Generic.NTx86]%GenericMTP.DeviceDesc%=MTP, USB\MS_COMP_MTPдописываем строку
%GenericMTP.DeviceDesc%=MTP, USB\VID_18D1&PID_4E42&MI_00 - Сохраняемся.
- Присоединяем Nexus7 кабелем к USB-порту (рекомендуется порт НЕ на передней панели системного блока).
- Windows спросит откуда брать драйвер, выбираем вариант не из Windows Update а из указанной папки, выбираем ту папку, куда распаковали драйвер на 1 шаге (подпапку usb_driver).
- После этого всё должно заработать! Зайдя в Мой компьютер можно увидеть новое устройство Nexus 7, у которого есть диск "внутренняя память", где представлены все папки и файлы планшета с возможностью копирования в обе стороны, создания папок и файлов на планшете, удаления их оттуда.
На Windows 7 работает тот же алгоритм, только без пунктов 3, 4, 5.
Удачного подключения!
UPD: Есть альтернативы - программы типа
http://www.wondershare.com/android-manager/ (платная, с бесплатным триал-периодом)
http://www.moborobo.com/ (бесплатная),
которые предоставляют красивый юзер-интерфейс для работы с устройством.
Впрочем надёжнее и очевиднее выглядит работа с файловой системой напрямую.
UPD 22.03.2014: Для удобной работы с файловой системой по протоколу MTP в Far Manager
используем плагин PortaDev http://plugring.farmanager.com/plugin.php?pid=933
Благодаря ему Nexus7 будет отображаться как обычный диск по Alt+F1/Alt+F2:
как WPD: Внутренняя память
UPD 05.04.2014: алгоритм расширен информацией о USB debugging параметре планшета
Ярлыки:
Android,
Far Manager
понедельник, 22 апреля 2013 г.
Как генерировать тест-кейсы в TDD
Интересную тему поднял СанЁк с Виталиком на недавнем тренинге Coding Dojo.
Есть пара программистов, работают по TDD, реализуют фичу. Вроде и тесты зелёные, и простая реализации кода. Но что-то беспокоит - ощущение, что что-то не сделано. Как же создать новые тесты, и чтобы красные они были?...По идее напарник должен был бы помочь. Но может случиться что у пары нет идей?
Позвать третьего? Тоже вариант. Но тогда ему надо вникнуть в таск хорошенько) желательно с предысторией. Подвариант: ничего ему не рассказывать, только дать условия задачи и код с тестами. Пусть сам разберётся, без тех констрейнтов которые у пары уже сформировались и которые возможно мешают увидеть картинку с высоты птичьего полёта.
Сделать перерыв и вернуться к этому позже? Вполне может быть... У меня по дороге домой столько идей роилось по поводу того как можно улучшить мой алгоритм игры в бомбермена и даже баги мысленно нашёл) Но что сделать, если таск надо сделать здесь и сейчас и значит перерыв не покатит?
5 минут по-любому надо выкроить. И отойти от компа подальше...
А может удалить парочку тестов (или все)? Вдруг их наличие давит на подсознание и мешает генерировать что-то новое?
Пойти в крайности? Попытаться понять что является крайним случаем для этой задачи. А может "крайность" эта относительная, зависит не от задачи, а от текущей реализации? Т.е. попытаться почувствовать для каких диапазонов входных эта реализация рулит, а для каких чувствуется, что не будет работать.
Задокументировать реализацию, не меняя сам код. Например отжавадокировать/прокомментировать свою реализацию. Вот представь что тесты твои читать никто не будет. Объясни читателю кода почему твои магические 3 и 5 будут работать хорошо для этой задачи.
Отрефакторить реализацию. Магию констант обозвать... Даже переменные переименовать. Повыносить методы итд. Что угодно чтобы реализация преобразилась и можно было взглянуть на неё под другим углом.
Попытаться переформулировать задачу. Представить себе понятия реального мира, которыми можно заменить то что требуется в задаче.
Ярлыки:
TDD
вторник, 1 января 2013 г.
Подписаться на:
Сообщения (Atom)