пятница, 29 апреля 2011 г.

компилятор javac. Как работать с утилитой?

Это инструмент для компиляции джава приложений. С верисии java 6 он также замещает утилиту для работы с аннотациями apt.
javac [ options ] [ sourcefiles ] [ classes ] [ @argfiles ]
Порядок аргументов произвольный.

Чначение аргументов:
options
Опции.
sourcefiles
Один или больше файлов для компиляции (пример такого файла MyClass.java).
classes
Один или больше классов, в которых нужно обработать их аннотации (пример: MyPackage.MyClass).
@argfiles
Один или больше файлов, которые содержат опции и список файлов для компиляции. -J опции нельзя использовать в таких файлах.

четверг, 28 апреля 2011 г.

Java assertions

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

среда, 27 апреля 2011 г.

java анотации. Что это и с чем их едят?

Это штуки, которые мы можем встретить в коде. Они начинаются из символа @.

CLASSPATH что это такое и с чем его едят?

Это пример теоретического принципа динамической линковки библиотек в разработке ПО для java-платформы.
Суть в том, что библиотеки(вернее пакеты целиком или контектные классы) указанные в класспазе, загружаются только тогда, когда это нужно в конкретном месте выполнения приложения.

пятница, 22 апреля 2011 г.

awk

Скриптовый язык поверх скриптового языка баша. Для работы с текстовыми файлами и входящими тектовыми потоками.
awk скрипт состоит из
шаблон {операция}

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

Утилита find

ключи и их параметры обрабатываются слева направо:

find /home -type f -atime +30 -size +1000 -print \
-name core -exec rm {} \;

Эта команда сработает так:
• покажет все файлы в папке хом, к которым обращались больше 30 дней назад, которые размером больше в 500 кБт.
• при этом те, у которых имя кор, будут удалены.
Если не указать принт перед нейм кор, то будут отображены только файлы кор. Это потому что в новых дистрибутивах принт поумолчанию ставится в конец указанных команд. (в старых системах принт нужно всегд указывать явно).

Как получить инфу о сервере?



uname -a
cat /etc/issue
- по дистр

rpm -qa и аналоги
- по софту

cat /proc/cpuinfo
cat /proc/meminfo
lspci
lsusb
- по хардваре

Некоторые команды ви

vi

Перейти на нужную строку

1) ESC , number , shift+G

2)ESC , :number


:set ft=xml        -- формат хмл

открыть два файла паралельно:
а) горизонатально:  sp ../path/to/file
б) вертикально: vp ../path/to/file

четверг, 21 апреля 2011 г.

Что такое Ant и с чем его едят.

Apache Ant -- это ява библиотека и утилита командной строки. Его мисия состоит в том, чтобы выполнять задачи, которые описаны в билд файлах( build.xml). Наиболее известное применения анта -- это создание(билдинг) ява-приложений.
Он уже поставляет готовые решения задач компиляции, сборки, тестирования и запуска ява-приложений.

Стратегии кастомизации и разработки платформы Лайфрея.

Лайфрей обьявил, что портал можно расширять теми средствами, с какими кто больше знаком. Это могут быть: JSF 2, Icefaces, Struts 2, Spring MVC, Vaadin, Alloy UI & YUI, jQuery, Dojo и другие.

Краткое описание функционала Liferay

Liferay -- это платформа портала уровня предприятия.

среда, 20 апреля 2011 г.

Связка Netbeans и Tomcat

Вообще-то все работает с поставкой нетбинса. Но у меня так работать перестало)
Поставил два нетбинса 6.9.1 и 7.0rc2. Первый заточен под 6-й томкат, второй под 7-й.

Процесс загрузки linux коротко

1) После включения компьютера находится бутлоудер либо Груб либо Лило.
2) Который загружает ядро линкуса в оперативку.
3) Потом запускает процесс init(или, в случает Ubuntu, upstart).
4) Init читает файл /etc/inittab(upstart читает что-то другое), определяет какой ран-левел и запускает соответсвующие левелу сервисы.
5) Init предоставляет соответсвующий логон метод - метод входа в систему.

Сервисы в Linux

Сервисы - это демоны, процессы которые выполняются в фоне и делают свою важную работу в системе.

У Debian и Fedora есть центральное хранение сервисов /etc/init.d. Тут создаются файлы под все сервисы системы. Файл сервиса это баш-скрипт, которому дали права на выполнение и который ожидает параметро старт/стоп/рестарт+другие.

У Linux есть понятие ран-левела(run-level), у BSD его нет.

Создание сервисов в linux

На примере tomcat. Статья скопирована с http://www.howtogeek.com/howto/linux/installing-tomcat-6-on-ubuntu/

понедельник, 18 апреля 2011 г.

Клиентская валидация в SugarCRM

В глобальном массиве validate['form-name'] храняться айтемы, которые определяют какие поля нужно валидировать и как.

Структура metaDataDefs


metaDataDefs – это массив из двух елементов templateMeta и panels. Он определяет как будет выглядеть лейаут к примеру EditView, а точнее что будет располагаться на форме правки.

суббота, 16 апреля 2011 г.

Настройка Томката. Файл $CATALINA_BASE/conf/*/context.xml

И так контекст(веб-приложение) можно определять под сервер(тоже сомое, что под контейнер сервелетов) или виртуальных хост.

Это:

1) $CATALINA_BASE/conf/context.xml
2) $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default -- эти настройки будут полюбому подгружатся для каждого контекста хоста.
3) $CATALINA_BASE/conf/[enginename]/[hostname]/foo#bar.xml - это так называются файлы с настройками конкретных контекстов, в данном случае это контекст foo/bar/.
4) Если в $CATALINA_BASE/conf/[enginename]/[hostname]/ не существует файл под конкретный контекст, то ищется файл /META-INF/context.xml и он копируется в данную директорию под именем этого контекста.

пятница, 15 апреля 2011 г.

Разница между CATALINA_HOME и CATALINA_BASE.

Обычно эти две переменные среды ссылаются на одно физическое место на диске, куда был установлен Томкат.
Вариант когда эти переменные отличаются присутсвует тогда, когда нам необходимо иметь две отдельные инстанции Томката на разных портах одного сервера. При этом эти инстанции будут пользоваться классами из одного места.

четверг, 14 апреля 2011 г.

Насройка Tomcat. Файл $CATALINA_BASE/conf/server.xml

Этот хмл содержит рутовый тег <Server ...="">...</Server> - этот тег представляет контейнр сервлетов Каталину, через него мы настраиваем контейнер сервлетов. Ну только вот это еще не совсем контейнер, это более тег подготовки среды.

Разница между Internet(IP) Sockets и Unix Domain Sockets

Unix Domain Sockets - более правильное название POSIX Local IPC Sockets(IPC-межпроцессное соединение) - это технология передачи данных между процессами позикс ОС. То как эта передача производится похоже на IP Sockets, но только внешне, потому что не использется низлежащий протокол TCP/IP, эти данные не выходят за предел локального компьютера.
Может показаться, что это одной и тоже с POSIX named pipes, но данные могут передаваться как байтовыми потоками, так и датаграмными последовательносями. А неймд пайпы передают только в байтовых потоках.

JNDI

JNDI (Java Naming and Directory Iterface) -- реализация под яву нейминг и директори сервиса -- это система, которая сохраняет, организовывает и пердоставлет доступ к информации в виде каталога.

Каталог -в понятии софтверной инженерии, это мап между именами и значениями. К именам прикрепляюся также атрибуты, по которым можно производиь поиск.

Примеры нейминг и директори сервисов: LDAP, NDS, DNS, and NIS(YP), более узкий пример: явовски обьект DataSource. С помощью унифицированного интерфейса вы можем обращься к разным сервисам.

среда, 13 апреля 2011 г.

Архивы JAVA

JAR( Java ARchive) -- зип-архив ява приложения. Внутри находятся директория-пакеты с откомпилированными классами и обязательно среди них класс со статическим методом мейн. Когда запаковывается приложение, в архиве рядом с дирекориями пакетов появляется еще одна META-INF. Эта директория содержит файл MANIFEST.MF, в нем указывается какой класс и из какого пакета содержит метод мейн(так запускает архив виртуальная машина, она по манифесту находит какой класс запустить). Также в манифесте содержися другая мета-информация. Пример манифеста:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_22-b04 (Sun Microsystems Inc.)
Main-Class: jettytest.AddressBook
Class-Path: lib/jetty-6.1.22.jar lib/jetty-util-6.1.22.jar lib/servlet-api-2.5.jar lib/xstream.jar
X-COMMENT: Main-Class will be added automatically by build

вторник, 5 апреля 2011 г.

Рабочие команды

find  .  -name '.svn' -exec rm -R  .svn {} \;  -- найти все файлы(папки) .svn иерархично с поточного места и удалить их
В этой команде {} \; -- знак конца выполнения команд в опции -exec

Найти директорию:
find . -type d  -name dirname

Найти файлы по имени и с текстом внутри:
find . -type f -name "*.java" -exec grep -l StringBuffer {} \;

Сделать свн-апдейт и после этого этим файлам выставить собственность и права:
svn  --no-auth-cache --username=user1 up; find . -name '.svn' -prune -o -exec chown -h warpcore.websiteos.com:hdev {} \; -exec chmod 700 {} \;


tar cf archivename.tar file1 file2

Скопировать из удаленного сервера
scp ayeremenko@remotehost.com:/home/ayeremenko/myarch.tar /home/temp/

mysqldump -uUSERNAME -pPASSWORD -hHOST.COM --add-drop-table dfb>dfb.sql