Category: Android

Posts on Android development

  • SVN в Mac OS X с графическим интерфейсом (GUI)


    Для Windows существует программа Tortoise SVN, которая позволяет работать с SVN без командной строки. Аналогом такой программы для Mac OS X является программа SCPlugin, которую можно скачать отсюда : http://scplugin.tigris.org


    Но мало ее скачать и установить, нужно еще понять, как ей пользоваться. Для этого, конечно, можно прочитать инструкцию, которая прилагается к ней. Но пользователи обычно сразу лезут в папку Программы и пытаются ее запустить. Данная программа в этом плане необычная. Это плагин к Finder. Чтобы начать ей пользоваться, перетащите программу SCToolbarButton на панель инструментов Finder и отпустите. Плагин таким образом разместится в панели инструментов. После этого выделите репозиторий SVN и нажмите на эту кнопку. Можете теперь выполнять команды.

  • Исправление ошибки SVN: Could not use external editor to fetch log message

    Англоязычная статья, из которой было взято данное решение:
    http://www.antbrown.com/web-development/svn-could-not-use-external-editor-to-fetch-log-message/

    Рассмотрим для начала причину этой ошибки. Заключается она в том, что Вы использовали к примеру, svn commit без параметров, что привело к тому, что SVN захотел запустить текстовый редактор по умолчанию, чтобы Вы могли ввести описание перед выполнением команды, но SVN не обнаружил его и выдал рассматриваемую ошибку.

    Чтобы решить данную проблему, нужно открыть файл bash_profile, который по сути является скриптом, вызываемым при каждом запуске Bash. Bash – это одна из наиболее популярных современных разновидностей командной оболочки UNIX. Здесь подробное введение в Bash.

    Открываем Терминал и вводим

    vim ~/.bash_profile
    

    Vim (сокр. от Vi Improved, произносится «вим») — свободный режимный текстовый редактор, созданный на основе более старого vi. Ныне это один из мощнейших текстовых редакторов с полной свободой настройки и автоматизации, и созданным благодаря этому расширениям и надстройкам. Ссылка для дальнейшего изучения: Викиучебник по Vim. Тильда ~ означает корневую папку данного пользователя. На клавиатуре MacBook Pro она находится слева от буквы Z, вводить ее нужно через Shift и английскую раскладку.

    Далее нажимаем “а”, чтобы войти в режим INSERT и пишем в Vim:

    export SVN_EDITOR="/usr/bin/vim"
    

    Чтобы выйти из Vim нажмите Esc, а затем, согласно справочнику комманд редактора Vim, нужно ввести :wq, что означает write and quit.

    Таким образом, мы сделали редактор Vim редактором SVN по умолчанию. Теперь мы это можем проверить. Для этого нужно перезапустить Терминал или вручную перезапустить bash_profile, после чего посмотреть значение соответствующей переменной окружения:

    source ~/.bash_profile
    echo $SVN_EDITOR
    

    Согласно справочнику комманд Терминала Mac OS X, команда source выполняет инструкции, находящиеся в указанном файле. То есть мы по сути вручную запустили скрипт bash_profile, который обычно запускается при запуске Терминала.

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

    Справочные ссылки:

    Подробное введение в Bash
    Викиучебник по Vim
    Справочник комманд редактора Vim
    Справочник комманд Терминала Mac OS X

  • Автозапуск программ в Mac OS X

    Для того, чтобы изменить настройки автозапуска программ в Mac OS X откройте Системные Настройки, а затем Учетные записи. На рисунке выделено красным.

    Откройте вклдадку Объекты входа для своей учетной записи.

    Здесь вы можете добавлять и удалять программы, которые будут автоматически запускаться при загрузке системы.

  • Wi-Fi точка доступа из MacBook

    Я пользуюсь MacBook уже около года, но только недавно узнал о том, что он может также служить точкой доступа Wi-Fi(aka HotSpot). Но есть одно ограничение: сам MacBook должен быть подключен к сети через провод, а не Wi-Fi.

    Поначалу я пытался настроить точку доступа по одной англоязычной инструкции, но после того, как у меня не получилось, я сделал поиск еще раз и нашел решение в одном из комментариев к посту в LiveJournal.

    Итак, расскажу здесь подробнее об алгоритме.

    • Заходим в Настройки->Общий доступ
    • Выбираем Общий интернет, ставим галочку на AirPort и нажимаем Настройки AirPort. Если галочка на Общем интернете уже стоит, ее нужно убрать, чтобы можно было редактировать AirPort.
    • Редактируем настройки AirPort как показано на рисунке.
    • Теперь ставим галочку на Общий интернет и нажимаем в появившемся окне Включить
    • Вверху справа на рабочем столе должна измениться иконка, как показано на рисунке.
    • Теперь настраиваем, например, iPhone: выбираем в настройках нужный WiFi – просто выделяем его среди найденных и вводим пароль. Все должно установиться автоматически.
    • Готово!

  • About wget on Mac

    1. What is wget?
      – GNU Wget (or just Wget, formerly Geturl) is a computer program that retrieves content from web servers, and is part of the GNU Project. Its name is derived from World Wide Web and get. It supports downloading via HTTP, HTTPS, and FTP protocols.
    2. How to install wget on Mac to use it through Terminal?
      – Look here for installation instructions: http://www.max-up.ru/news-apple/wget-mac-os-snow-leopard.html
    3. How to use wget in Terminal?
      – Open terminal, determine which file you want to download and type something like this:

      wget http://172.28.xxx.xx/directory//style5.css

  • How to enable SVN via Proxy on Mac

    To enable SVN via Proxy on Mac do the following:

    1. Open Terminal
    2. Type vim ~/.subversion/servers
    3. Enter Insert mode by typing and deleting any letter
    4. Go to the line [global] at the bottom
    5. Change configuration to: 

      http-proxy-host = 172.28.111.1(your proxy address)
      http-proxy-port = 3128 (your proxy port)
    6. Don’t forget to remove # symbols, they mean commentary.
    7. Press escape
    8. Type :wq, which means that you want to exit text editor and save changes
    9. Ready! Don’t forget to use proper url for svn which supports WebDAV, etc.

    References:

    1. http://ru.wikipedia.org/wiki/WebDAV
    2. http://www.rubyrobot.org/tutorial/subversion-with-mac-os-x
    3. http://www.eng.hawaii.edu/Tutor/vi.html
  • Гибкие методологии разработки ПО (Agile Software Development)

    Подборка из википедии.

    Основные идеи Agile Software Development:

    ▪ Личности и их взаимодействия важнее, чем процессы и инструменты;
    ▪ Работающее программное обеспечение важнее, чем полная документация;
    ▪ Сотрудничество с заказчиком важнее, чем контрактные обязательства;
    ▪ Реакция на изменения важнее, чем следование плану.

    Принципы, которые разъясняет Agile Manifesto:


    ▪ удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО;
    ▪ приветствие изменений требований, даже в конце разработки (это может повысить конкурентоспособность полученного продукта);
    ▪ частая поставка рабочего ПО (каждый месяц или неделю или ещё чаще);
    ▪ тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта;
    ▪ проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием;
    ▪ рекомендуемый метод передачи информации — личный разговор (лицом к лицу);
    ▪ работающее ПО — лучший измеритель прогресса;
    ▪ спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок;
    ▪ постоянное внимание на улучшение технического мастерства и удобный дизайн;
    ▪ простота — искусство НЕ делать лишней работы;
    ▪ лучшие технические требования, дизайн и архитектура получаются у самоорганизованной команды;
    ▪ постоянная адаптация к изменяющимся обстоятельствам.

    ———————————————————————————-

    Методологии Agile Software Development:

    ———————————————————————————-

    Scrum

    Scrum чётко делает акцент на качественном контроле процесса разработки.
    Scrum — это набор принципов, на которых строится процесс разработки, позволяющий в жёстко фиксированные небольшие промежутки времени (спринты от 2 до 4 недель) предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет. Возможности ПО к реализации в очередном спринте определяются в начале спринта на этапе планирования и не могут изменяться на всём его протяжении. При этом строго-фиксированная небольшая длительность спринта придаёт процессу разработки предсказуемость и гибкость.
    Главные действующие роли в Scrum: ScrumMaster — тот, кто ведёт Scrum митинги и следит, чтобы при этом соблюдались все принципы Scrum (роль не предполагает ничего кроме корректного ведения самого Scrum-а, руководитель проекта скорее относится к Product Owner и не должен являться ScrumMaster); Владелец Продукта (Product Owner) — человек, который представляет интересы конечных пользователей и других заинтересованных в продукте сторон; и кросс-функциональная Команда (Scrum Team), состоящая как из разработчиков, так и из тестировщиков, архитекторов, аналитиков и т. д. (при этом размер команды в идеале составляет 7±2 человека). Команда является единственным полностью вовлечённым участником разработки, и отвечает за результат как единое целое. Никто кроме команды не может вмешиваться в процесс разработки на протяжении спринта.
    На протяжении каждого спринта, 15-30 дневного периода (длительность определяется командой), создаётся функциональный рост программного обеспечения.
    Набор возможностей, которые реализуются в каждом спринте, происходят из этапа, называемого product backlog (документация запросов на выполнение работ), обладающего наивысшим приоритетом по уровню требований к работе, который должен быть выполнен. Запросы на выполнение работ (backlog items), определенных на протяжении совета по планированию спринта (sprint planning meeting), перемещаются в этап спринта. На протяжении этого собрания Владелец Продукта информирует о заданиях, которые должны быть выполнены. Тогда Команда определяет, сколько из желаемого они могут выполнить, чтобы завершить необходимые части на протяжении следующего спринта. Во время спринта команда выполняет определенный фиксированный список заданий (т. н. sprint backlog). На протяжении этого периода никто не имеет права менять список требований к работе, что следует понимать как заморозку требований (requirements) во время спринта.
    Product backlog — это документ, содержащий список требований к функциональности, которые упорядочены по степени важности. Product backlog представляет собой список того, что должно быть реализовано. Элементы этого списка называются «историями» (user story) или элементами backlog’a (backlog items). Product backlog открыт для редактирования для всех участников Scrum-процесса.
    Sprint Backlog — содержит функциональность, выбранную Product Owner из Product Backlog. Все функции разбиты по задачам, каждая из которых оценивается командой. Каждый день команда оценивает объем работы, который нужно проделать для завершения задач.
    Burndown chart — показывает, сколько уже исполнено и сколько ещё остаётся сделать.

    ———————————————————————————-

    Lean


    Принципы
    ▪ Исключение затрат. Затратами считается всё, что не добавляет ценности для потребителя. В частности: излишняя функциональность; ожидание (паузы) в процессе разработки; нечёткие требования; бюрократизация; медленное внутреннее сообщение.
    ▪ Акцент на обучении. Короткие циклы разработки, раннее тестирование, частая обратная связь с заказчиком.
    ▪ Предельно отсроченное принятие решений. Решение следует принимать не на основе предположений и прогнозов, а после открытия существенных фактов.
    ▪ Предельно быстрая доставка заказчику. Короткие итерации.
    ▪ Мотивация команды. Нельзя рассматривать людей исключительно как ресурс. Людям нужно нечто большее, чем просто список заданий.
    ▪ Интегрирование. Передать целостную информацию заказчику. Стремиться к целостной архитектуре. Рефакторинг.
    ▪ Целостное видение. Стандартизация, установление отношений между разработчиками. Разделение разработчиками принципов бережливости. «Мыслить широко, действовать мало, промахиваться быстро; учиться стремительно».

    ———————————————————————————-

    Extreme Programming, XP


    Двенадцать основных приёмов экстремального программирования (по первому изданию книги Extreme programming explained) могут быть объединены в четыре группы:
    ▪ Короткий цикл обратной связи (Fine scale feedback)
    ▪ Разработка через тестирование (Test driven development)
    ▪ Игра в планирование (Planning game)
    ▪ Заказчик всегда рядом (Whole team, Onsite customer)
    ▪ Парное программирование (Pair programming)
    ▪ Непрерывный, а не пакетный процесс
    ▪ Непрерывная интеграция (Continuous Integration)
    ▪ Рефакторинг (Design Improvement, Refactor)
    ▪ Частые небольшие релизы (Small Releases)
    ▪ Понимание, разделяемое всеми
    ▪ Простота (Simple design)
    ▪ Метафора системы (System metaphor)
    ▪ Коллективное владение кодом (Collective code ownership) или выбранными шаблонами проектирования (Collective patterns ownership)
    ▪ Стандарт кодирования (Coding standard or Coding conventions)
    ▪ Социальная защищенность программиста (Programmer welfare):
    ▪ 40-часовая рабочая неделя (Sustainable pace, Forty hour week)

    В XP особое внимание уделяется двум разновидностям тестирования:
    ▪ тестирование модулей (unit testing);
    ▪ приемочное тестирование (acceptance testing).
    Разработчик не может быть уверен в правильности написанного им кода до тех пор, пока не сработают абсолютно все тесты модулей разрабатываемой им системы. Тесты модулей позволяют разработчикам убедиться в том, что их код работает корректно. Они также помогают другим разработчикам понять, зачем нужен тот или иной фрагмент кода и как он функционирует. Тесты модулей также позволяют разработчику без каких-либо опасений выполнять рефакторинг (refactoring).
    Приемочные тесты позволяют убедиться в том, что система действительно обладает заявленными возможностями. Кроме того, приемочные тесты позволяют проверить корректность функционирования разрабатываемого продукта.
    Для XP более приоритетным является подход называемый TDD (Test Driven Development), сначала пишется тест, который не проходит, затем пишется код, чтобы тест прошел, а уже после делается рефакторинг кода.

    Друг дал ссылки на хорошие статьи по данной теме:

    http://martinfowler.com/articles/newMethodology.html

  • Some web sites do not open

    If you have a problem opening some web pages these tips may help you. They are about to heal symptoms, not the cause. The cause is usually virus activity.

    1. Open this branch of a registry: cmd-> regedit -> [HKey_Local_Machine\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes]
      It must be clean, except default entry.
    2. Try this in Start/run: md /k notepad c:\WINDOWS\system32\drivers\etc\hosts
      It must be clean, except localhost entry.
    3. Find faults in the pipeline: cmd /k tracert www.yourcite.com
      This tip doesn’t help to fix, but to diagnose.
    4. Clear dns cache:
      cmd /k ipconfig /displaydns
      cmd /k ipconfig /flushdns
    5. Install and run antivirus, for example, Kaspersky antivirus, trial version. http://www.kaspersky.ru/

    References:

    1. http://exler.livejournal.com/1385703.html
    2. http://www.labnol.org/software/tutorials/computer-cannot-open-internet-websites/2116/
  • MS Fortran Powerstation 4.0 “Preloaded symbol maynot match” problem during debug

    I solved this problem and the solution is different from this one where it is recommended to check the order in which your libraries are loaded. If you encounter this message during debug of your program, you might have a bad directory name for your project.

    For example, I had the following directory:

    c:\Аспирантура\LACW_CYL\lacw_cyl 3.14\.

    As you see, there are some non ASC II letters in this path. I didn’t actually know what to do, when I got that problem, but when I changed my folder name, this helped me and I am very glad, because now I can use my MS Fortran Powerstation 4.0 debugger and program nicely. Before that I even tried to install Intel and Compaq compilers but I didn’t like them, because they had their own problems, although may be they are better. So, I changed my folder to this one, and that worked out:

    c:\Aspirantura\LACW_CYL\lacw_cyl 3.14\

  • The best way to remove mouse acceleration on Mac Os X

    I have tried many shareware programs but finally I found a better, cheaper, faster way to remove it. You don’t need to change or think about any acceleration curves, etc.

    This is the best way to remove mouse acceleration on Mac Os X:

    In your terminal(terminal is located in Applicatons/Services/Terminal):

    macpro:~ user$ curl -O http://ktwit.net/code/killmouseaccel
    macpro:~ user$ chmod +x killmouseaccel
    macpro:~ user$ ./killmouseaccel mouse

    It was copypasted from here.

    I write it here just in order not to loose such a useful recipe.