Archive
commons-CLI: GNU, POSIX and Java-style command-line options syntax
The Apache Commons CLI
http://commons.apache.org/cli/ – библиотека Apache Commons CLI предоставляет интерфейс (API) для разбора параметров командной строки, передаваемых программе при запуске, а также для печати информации о возможных параметрах запуска.
Оказывается, существует несколько вариантов синтаксиса передаваемых программе параметров:
- POSIX like options (ie.
tar -zxvf foo.tar.gz)- GNU like long options (ie.
du --human-readable --max-depth=1)- Java like properties (ie.
java -Djava.awt.headless=true -Djava.net.useSystemProxies=true Foo)- Short options with value attached (ie.
gcc -O2 foo.c)- long options with single hyphen (ie.
ant -projecthelp)
Библиотека Commons CLI поддерживает все пять вариантов.
POSIX
Пользуясь широкими возможностями пакета commons-cli, нужно помнить: использование аргументов командной строки может привести к тому, что разрабатываемая программа перестанет быть портируемой (т.е. не будет Java-программой на все 100%)!
Для обеспечения совместимости и переносимости программ, использующих аргументы командной строки, рекомендуется придерживаться стандартных соглашений POSIX о синтаксисе параметров:
- An option is a hyphen followed by a single alphanumeric character, like this:
-o.- An option may require an argument (which must appear immediately after the option); for example,
-o argumentor-oargument.- Options that do not require arguments can be grouped after a hyphen, so, for example,
-lstis equivalent to-t -l -s.- Options can appear in any order; thus
-lstis equivalent to-tls.- Options can appear multiple times.
- Options precede other nonoption arguments:
-lst nonoption.- The
--argument terminates options.- The
-option is typically used to represent one of the standard input streams.
Полностью POSIX-совместимыми являются такие операционные системы как AIX, HP-UX, MacOS X 10.5, MINIX, QNX, Solaris/OpenSolaris и др.(полный список).
Частично совместимые – FreeBSD, Linux (особенно использующие LSB), NetBSD, OpenBSD и др.(полный список).
Подробности
- http://www.gnu.org/manual/gawk/html_node/Options.html – GNU-параметры на примере консольной утилиты Awk
- PosixParser и GnuParser в библиотеке Commons CLI
Выбрать парсер достаточно просто:CommandLineParser parser = new PosixParser(); CommandLine cmd = parser.parse( options, args);
[ann] Page Speed – оптимизация производительности вебсайта
Page Speed – так называется новая пузомерка от Google, аналог YSlow и по сути надстройка над Firebug, позволяющая измерить параметры производительности вебсайта и получить советы и подсказки по оптимизации.
Подборка общих рекомендаций – Web Performance Best Practices (аналогичная страничка от Yahoo! называется Best Practices for Speeding Up Your Web Site). Вот что гуглоперцы рекомендуют:
- Оптимизировать кеширование
- Минимизировать время обработки запросов
- Минимизировать размер запросов — уменьшения объёмов поступающих (входящих) данных
- Минимизировать нагрузку на сервер путём уменьшения размера ответов, скачиваний, а также за счёт кеширования страниц
- Оптимизировать рендеринг страничек — улучшения в области разметки страницы
Полезные ссылки:
- плагины к Firebug
http://code.google.com/speed/page-speed/ – Page Speed
http://developer.yahoo.com/yslow/ – Yslow - http://getfirefox.com и http://getfirebug.com/ – странички популярного веббраузера и популярного девелоперского плагина к нему
- советы
http://developer.yahoo.com/performance/rules.html – Best Practices for Speeding Up Your Web Site
http://code.google.com/speed/page-speed/docs/rules_intro.html – Web Performance Best Practices - подборки статей о производительности
http://developer.yahoo.com/performance/ – Exceptional Performance
http://code.google.com/speed/page-speed/ – Page Speed Home
deja-vu, huh? :)
Wolfram|Alpha vs Google Squared
Google Labs выпустили Google Squared – поисковый инструмент, который поможет собрать воедино факты на любую заданную тему.
Возможности:
- увидеть таблицу элементов и их аттрибутов
разработчики назвали такие таблицы фактов словом “squares“- настроить отображение, указав какие элементы (строки) и аттрибуты (столбы) показывать, а какие – нет
- увидеть, какие вебсайты являются источником информации
- сохранить подборку и поделиться ей с другими пользователями
К слову, Google Squared похож на сервис структурированных запросов Wolfram Alpha – программу вычисления знаний (computational knowledge engine), результат работы которой – выборка из собственной внутренней базы знаний.
О возможностей системы Wollram Alpha рассказывает её создатель, Стивен Вольфрам – британский физик, математик, писатель и бизнесмен, известный своими работами в таких областях как физика элементарных частиц, космология, клеточные автоматы, теория сложности и компьютерная алгебра, а также авторством программы Mathematica и собственно сервиса Wolfram|Alpha.
Видео (10:58)
Факты:
- Wolfram|Alpha – это 5 миллиноно строк кода на Mathematica (с использованием webMathematica и gridMathematica), которые работают на 10,000 CPU, база знаний, NLP-движок и библиотека алгоритмов
- webMathematica – продукт, позволяющий веббраузеру выступать в роли интерфейса к удалённому Mathematica-серверу и запускать Mathematica-скрипты на любой платформе.
Пример работы : ctg (Pi/2) ≈ 0

http://functions.wolfram.com/ElementaryFunctions/Cot/ – обзор функции котангенса
http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=Cot – онлайн калькулятор, позволяет вычислить значение функции котангенса для любого аргумента
http://functions.wolfram.com/ElementaryFunctions/Cot/09/0001/ – представление котангенса в виде ряда, плюс возможность скопировать эту формулу во внутренних форматах Mathematica (Input Form, Standard Form и Rule Form) или в MathML-формате:

утилита mathmlcentral.com от Wolfram Research умеет генерировать GIF, JPEG и даже xHTML по MathML-коду; есть даже возможность сгенерить случайным образом выбранную формулу (кнопка “Random URL“) - gridMathematica – дополнение к Mathematica, расширяющая её возможности параллельных вычислений
Подробности:
- http://www.google.com/squared/
- http://www.wolframalpha.com/
- http://functions.wolfram.com/
По состоянию на июнь 2009 сайт webMathematica содержит 304,409 формул и 10,828 визуализаций, причём здесь есть даже информация о функциях, которую они ещё в свою CAS не встроили. - http://mathworld.wolfram.com/
MathWorld – постоянно обновляемый набор интерактивных математических статей, созданных и поддерживаемый Эриком Вайштайном. Проект спонсируется компанией Wolfram Research Inc. (автор Mathematica) и частично грантом “National Science Foundation’s National Science Digital Library” университету “University of Illinois at Urbana-Champaign”.
dzone.com – “Free Cheat Sheets for Developers” (RefCardz) and more
http://refcardz.dzone.com/ – набор Cheat Sheets, или как их называют на dzone.com, “RefCardz”.
Факты о RefCardz:
- написаны авторами бестселлеров и ведущими экспертами
- освещают важные аспекты программирования
- содержат советы и примеры исходного кода
- распространяются в удобном для чтения на экране и для печати PDF-формате
rss-лента свежих refcardz: http://feeds.dzone.com/zones/refcardz
Оказывается, dzone хорош не одними RefCardz. Встречайте:
- ссылки: http://www.dzone.com/links/
свежие ссылки программистской тематики; рейтинговая система на основе количества проголосовавших за каждую ссылку - примеры: http://snippets.dzone.com/
образцы исходного кода, готового к использованию; навигация по каталогу с помощью меток (tag’ов) - сообщества интересам, например Javalobby, .Net и Eclipse



