Автор: vit

  • Удаляем .svn папки. Linux или Windows+FAR

    Всем добрый вечер!

    Иногда возникает задача удалить все папки “.svn” в какой-то директории.
    Конечно можно сразу получить “чистую версию” используя “svn export”.
    Но иногда в силу лени или отсутствия возможности подключиться к SVN-серверу,
    можно поступить по-другому.

    Linux
    $rm -rf `find . -type d -name .svn`
      
    Перевод на человеческий
    rm значит удаление
    ключ  -r удалять рекурсивно, f - "force" не спрашивать подтверждения.
    т.е. rm -rf  -удалять втихую файлы рекурсивно.
     `find . -type d - name .svn` 
    find - искать файлы
    . - в текущей директории
    -type d - искать только директории (поэтому d)
    -name .svn - искать с именем ".svn"
    т.к. мы обернули find в апострофы - `find ...`, то rm будет удалять то, что ей придет от комманды
    из апострофов.
    Полностью команда означает следующее. Удалить без лишних вопросов 
    в текущей директории и ее поддиректориях всё, что найдется в поисковом запросе, 
    который будет искать все директории с именем ".svn" в текущей директории.
     
    Windows+FAR
    Жмем поиск [Alt]+[F7]
    Вводим .svn
    В полученном списке выбираем [Панель] (два нажатия стрелочки вправо)
    Выделяем все - [NumPad *]
    Нажимаем удалить [F8]
    
    
  • Диаграмма последовательности (Sequence Diagram)

    Диаграмма последовательности (Sequence Diagram)

    Удобное средство для обозначения очередности следования друг за другом различных стимулов (сообщений), с помощью которых объекты взаимодействуют между собой.
    Например, когда нужно проработать буквально по шагам какой-то очень важный участок выполнения программы.
    Главный акцент – порядок и динамика поведения, т.е. как и в каком порядке происходят события.
    Отличие от диаграммы классов:
    Диаграмма классов дает статическую картинку, т.е. описание которое не меняется во время выполнения программы.
    Отличие от диаграммы коммуникаций (или как она раньше называлась colaboration):
    Диаграмма последовательности фокусирует наше внимание на очередности выполнения по времени, а диаграмма коммуникаций – на составляющих элементах.
    Обычно нормальные люди стараются описывать одной диаграммой только один определенный кейс (UseCase, вариант использования), например: “оставить коммент к сообщению в блоге”, “стать постоянным читателем” и т.д…
    Диаграммы последовательности,
    которые описывают всю систему сразу, представляют из себя монстра, пожирающего внимание, сознание, силы, время и мозг разработчика.

    Итак, предлагаю рассмотреть простенькую диаграмму последовательности.
    Возьмем банальный пример:

    диаграмма последовательности

    (далее…)

  • Вики-Тики-Тави… Небольшой обзор различных wiki-движков

    Всем добрый день!

    Переключаю режим протоколирования своих записей в WebLog-е ,в  режим DEBUG…
    Внимание! Количество публикуемой информации будет на два порядка больше.
    Изначально я планировал использовать этот блог в качестве замены блокноту.
    Очень часто в работе нужно записать на скорую руку различные советы, чтобы потом можно было их быстро найти и прочитать.

    В ближайшие несколько месяцев, планирую перейти на использование для этих целей онлайновых блокнотов. Сейчас выбираю между luminotes и ubernote(Google Notebook, к сожалению, сдулся…)
    Пока не выбрал буду использовать этот блог в двух вариантах – как для написания полноценных обзоров, так и для небольших заметок “чтоб не забыть” .

    Полноценные обзоры (инструкции), всё-таки оказались нужны, т.к. накапливается множество информации, которую хранить в виде небольших записок уже не получается.
    В данном топике попробую рассмотреть вики-движки: MediaWiki, JAMWiki, XWiki и MoinMoin.
    Начнем с двух главных аспектов:

    1. Какая от них польза?
    2. Какие они бывают?

    Польза
    Создание базы знаний  различных сообществ, рабочих групп и организаций. В целом, я вижу два основных UseCase’a использования Wiki.
    Case 1. Организация и ее внутренний рабочий беспорядок.
    Контекст
    Допустим существует компания (например кол-во сотрудников > 5 чел). Раз в два-три месяца в компанию приходят или уходят новые сотрудники. Деятельность компании лежит в технологически ёмких областях – IT, телеком и т.д.
    Проблема
    В компании существует огромное количество различных правил и инструкций,  которые либо никак не задокументированы, либо отражены в бумажном виде и покрыты толстым слоем пыли.  Периодически сотрудником приходиться проводить целое детективное расследование, чтобы понять  как собрать версию XXX для ООО “ГАЗМЯСБЫТ, где находится волшебный скрипт перезапускающий сервер или когда поздравить с днем рождению Машу из отдела продаж.

    Польза от wiki

    1. Не нужно держать в голове всю справочную информацию (настройки роутеров, дни  рождения сотрудников, “хитрые” правила сборки и выкладки программных продуктов, телефоны, адреса и т.д.)
    2. Делает информацию открытой внутри компании. Таким образом аннигилируются зависимость от “человека знания“, который единственный в радиусе 1 светового года знает, что где лежит и как это работает.
    3. Это просто интересно и модно. Некоторым это важно.

    Case 2. Фан-клуб, радио кружок, небольшой городок.
    (далее…)

  • JAD

    Используем JAD (JAva Decompiler)
    Очень удобно использовать в связки с FAR

    1. Качаем JAD http://web.archive.org/web/20080214075546/http://www.kpdus.com/jad.html
    2. Устанавливаем, т.е. тупо разархивируем
    3. Прописываем в PATH (если нужно)
    4. Запускаем FAR
    5. Нажимаем F9
    6. Открываем Комманды –> Ассоциации Файлов
    7. Жмем “Ins”
    8. Добавляем. Маска файла – *.class, команда для редактирования – edit:<jad -p !.!

    Все ОК.

  • изменение размера картинок

    mogrify -resize 640 *.jpg
    mogrify -resize x768 *.jpg
    mogrify -resize 30% *.jpg

    P.S.: Про изменение размеров картин в Java.

  • создание пользователя для MySQL

    GRANT ALL PRIVILEGES ON .* TO 'my_user'@'localhost' IDENTIFIED BY 'my_password';
    Подробнее читать тут. 
    команда GRANT создает пользователя my_user - имя пользователя 
    IDENTIFIED BY - задает пароль my_password (он потом хэшируется)
    чтобы подключаться не только с локального хоста вместо'my_user'@'localhost' пишем 'my_user'@'%'
    Если хотим чтобы пользователь мог добавлять других добавляем
    WITH GRANT OPTION
    т.е. так ... IDENTIFIED BY 'my_password'  WITH GRANT OPTION;
    
    Пример JDBC URL jdbc:mysql://host:3306/database
    
    Если нужен SSL и X509. Смотрим сюда:Как настроить MySQL для SSL Как настроить JDBC коннектор
  • GWT+Maven

    Связка Maven + GWT на мой взгляд один из самых эффективных  способов работы.

    1. Ставим maven. Как всегда, прописываем путь в PATH к mvn.bat
    2. Читаем про maven. Прочитать можно здесь тут .  Руководство на мой взгляд не особо удобное, но разобраться можно…
    3. Читаем про плагин к maven’у для работы с GWT. Читать здесь

    Далее остается только создать соответствующий maven проект.

    Можно руками, а можно например так:

    mvn archetype:generate -DarchetypeGroupId=org.codehaus.mojo -DarchetypeArtifactId=gwt-maven-plugin -DarchetypeVersion=1.1 -DgroupId=myGroupId  -DartifactId=myArtifactId
  • новый модуль в svn

    я делаю тупо и просто

    1. логинюсь на сервак и делаю svn import ./projectName  file:///path/to/svn/rep/projectName -m “my message”
    2. захожу в конфиг-файл:/path/to/svn/rep/conf/authz и добавляю себе права[/projectName]boss=rw
    3. на рабочей тачке делаю  svn co svn://myserver.ru/projectName проверяю что всё четко
    4. копирую нужные исходники
    5. делаю svn add
    6. делаю svn commit -m “my second message”
    7. создаю в другом месте папку, туда svn co svn://myserver.ru/projectName и проверяю что все ОК