Archive

Archive for June, 2009

Clover Test Optimization: less is more

June 8th, 2009 No comments

В чём суть оптимизации тестов?

Clover (http://www.atlassian.com/software/clover/), начиная с версии 2.4, отслеживает какие строки исходного кода запускаются при выполнении каждого теста. Эта информация используется для оптимизации порядка запуска тестов.

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

Поддержка Clover в интегрированных средствах разработки (IDE)

Поддерживаются Eclipse и IntelliJ IDEA.

Немногие разработчики при внесении небольших изменений или рефакторинге запускают весь комплект тестов перед тем тем как закомитить свои изменения в систему контроля версий. Вместо этого (в лучшем случае) запускается выборочно несколько тестов или (как это обычно происходит :) ) тесты не запускаются вообще.

Оптимизация тестов позволяет запустить все тесты, при этом не расходуя время разработчика на выполнение всего комплекта или наоборот не пропуская запуск того теста, который потом сломает ночной билд (nightly build). Такой подход означает более частое тестирование, что (естественно) улучшит качество кода и одновременно ускорит процесс разработки.

Clover в действии – более частый запуск тестов за счёт меньшего времени их выполнения, или less is more (см. ниже).

01:53

Подробности:

Происхождение фразы “less is more”

неверныеПрограммисты на ruby/RoR знакомы с мантрой “less is more”. Думаю, им будет интересно узнать о происхождении этой фразы.
Вот отрывой из поэтического произведения “Andrea del Sarto” (также известного как “Faultless Painter”) Роберта Браунинга,

опубликованного в далёком 1855 году и вошедшего в сборник “Men and Women“:

I do what many dream of, all their lives,
–Dream? strive to do, and agonize to do,
And fail in doing.
I could count twenty such
On twice your fingers, and not leave this town,
Who strive–you don’t know how the others strive
To paint a little thing like that you smeared
Carelessly passing with your robes afloat–
Yet do much less, so much less, Someone says,
(I know his name, no matter)–so much less!
Well, less is more, Lucrezia: I am judged.

There burns a truer light of God in them,
In their vexed beating stuffed and stopped-up brain,
Heart, or whate’er else, than goes on to prompt
This low-pulsed forthright craftsman’s hand of mine.

Часто авторство фразы “Less is more” ошибочно приписывается архитекторам Buckminster Fuller (1895 – 1983) или Ludwig Mies van der Rohe (1886 – 1969). Конечно, эти архитекторы эту фразу использовали, но придумали её не они.

Внимение! правильный ответ :)
Фраза “less is more” – девиз философии минимализма. Впервые была использована в 1774 году немецким поэтом Кристофом Виландом (1733 – 1813)

Примечательно, что в UNIX-мире совершенно спокойно уживаются два пейджера, less и more:

:)

Tags:

[ann] Confluence 3.0

June 8th, 2009 No comments

2 июня вышел релиз Confluence 3.0 – wiki-системы, написанной на java.

Макросы

В Confluence 3.0 появился Macro Browser – возможность добавлять чарты, списки дел, фото галереи, RSS-ленты с помощью нажатия на кнопку мыши. В Confluence 3.0 есть 80 встроенных макросов, плюс возможность использовать макросы сторонних производителей, например  Balsamiq mockups и Gliffy diagrams.

Социальное взаимодействие
В Confluence 3.0 появились возможность открывать для себя новых коллег и экспертов, следя за их обновлениями, налаживать новые связи с сотрудниками, а также создавать и вступать в тематические группы (networks).

Эти новые возможности помогут найти новых коллег:

  • Hover Profile (всплывающий профиль) – информация и меню профиля. Появляется, если навести курсор мыши на фото пользователя
  • Enhanced User Profiles (пользовательский профиль) – больше данных в пользовательском профиле, такие как должность, отдел, месторасположение плюс информация об активностях, строке статуса, а также его окружение (network)
  • Redesigned Personal Spaces (пользовательские пространства)- персональные пользовательские  пространства (spaces) теперь содержат сворачиваемую боковую панель, которая как и User Profile содержит данные об активности, текущий статус и окружение.

Эти возможности – для построения связей и отношений:

  • Status Updates (обновления статуса) – сообщения длиной до 140 символов, позволяют поделиться ссылкой, задать вопрос или просто поделиться с сотрудниками информацией о том, чем вы именно сейчас занимаетесь
  • Networks (окружения) – возможность следить за обновлениями коллег путём добавления их к своему окружению
  • Activity Streams (активности) – просмотр аггрегированных данных об активности своего окружения

Удобство использования

  • Upgraded PDF Export – улучшенных экспорт в формат PDF с возможностью создать титульную страницу, одержание, настроить форзацы и выбрать стиль для элементов документа (цвет, шрифт и проч.)
  • Major performance improvements – улучшения производительности:  +100% для Confluence, работающих в кластере и +40% для обычных исталляций.

Демонстрация возможностей новой Confluence (3:52):

Atlassian Plugin Exchange (http://plugins.atlassian.com/) – репозиторий расширений с возможностью управления расширениями непосредственно в админ-панели JIRA или Confluence.

Демо (3:00):

Подробности:

Tags: , ,

Wikipedia: избранное

June 7th, 2009 No comments

Rob Matthews распечатал избранные статьи англоязычной википедии.
Получился томик на 5000 страниц:

wikipedia-feautured

wikipedia-feautured_2

Tags: , ,

commons-CLI: GNU, POSIX and Java-style command-line options syntax

June 6th, 2009 No comments

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 argument or -oargument.
  • Options that do not require arguments can be grouped after a hyphen, so, for example, -lst is equivalent to -t -l -s.
  • Options can appear in any order; thus -lst is 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 и др.(полный список).

Подробности

Tags: , , ,

[ann] экспертная система Nigma.ru

June 5th, 2009 No comments

nigma.ru – онлайн-система, позволяющую как производить простейшие арифметические преобразования, так и решать математические задачи различной степени сложности. Также Нигма распознает более тысячи физических, математических констант и единиц измерения, что позволяет производить операции со множеством величин (в том числе решать с ними уравнения) и получать ответ в требуемых единицах измерения.

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

Пример – биквадратное уравнение c развёрнутым ходом решения:

nigma-biquadratic-equation

Подробнее о математических и лингвистических способностях нигмы можно почитать на сайте nigma.ru.

Что умеет nigma – http://nigma.ru/index_menu.php?action=click_menu&menu_element=math_task_list:

  • решать уравнения, в т.ч. с единицами измерения и математическими и физическими константами, а также системы уравнений
  • Конвертировать валюты
  • Раскладывать на множители числа и буквенные выражения
  • Находить наименьшее общее кратное и наибольший общий делитель чисел; определять взаимно простые числа
  • Вычислять модуль числа
  • Сравнивать числа (с пониманием математических констант вроде “пи”), сортировать числа по возрастанию и убыванию
  • Вычислять численные выражения, раскрывать скобки, сокращать дроби, упрощать буквенные выражения, упрощать тригонометрические выражения
  • Определять знак буквенного выражения (если возможно)
  • Представлять многочлен в виде квадрата
  • Приводить подобные слагаемые
  • Приводить дроби к общему знаменателю

Что понимает: http://nigma.ru/index_menu.php?action=click_menu&menu_element=math_phrase_list – фразы “Вычислить”, “Решить”, НОК, НОД, Сортировка (Упорядочить), Общий знаменатель, Делители, Модуль, Сравнить, Раскрыть скобки, Представить в виде квадрата, Привести подобные, Сократить, Упростить, Взаимно простые, Знак.

См. также заметку Wolfram|Alpha vs Google Squared

happy computing!

Tags: ,

[ann] Page Speed – оптимизация производительности вебсайта

June 5th, 2009 No comments

Page Speed – так называется новая пузомерка от Google, аналог YSlow и по сути надстройка над Firebug, позволяющая измерить параметры производительности вебсайта и получить советы и подсказки по оптимизации.

Подборка общих рекомендаций – Web Performance Best Practices (аналогичная страничка от Yahoo! называется Best Practices for Speeding Up Your Web Site). Вот что гуглоперцы рекомендуют:

  • Оптимизировать кеширование
  • Минимизировать время обработки запросов
  • Минимизировать размер запросов — уменьшения объёмов поступающих (входящих) данных
  • Минимизировать нагрузку на сервер путём уменьшения размера ответов, скачиваний, а также за счёт кеширования страниц
  • Оптимизировать рендеринг страничек — улучшения в области разметки страницы

Полезные ссылки:

deja-vu, huh? :)

Wolfram|Alpha vs Google Squared

June 4th, 2009 No comments

Google Labs выпустили Google Squaredпоисковый инструмент, который поможет собрать воедино факты на любую заданную тему.

Возможности:

  • увидеть таблицу элементов и их аттрибутов
    разработчики назвали такие таблицы фактов словом “squares
  • настроить отображение, указав какие элементы (строки) и аттрибуты (столбы) показывать, а какие – нет
  • увидеть, какие вебсайты являются источником информации
  • сохранить подборку и поделиться ей с другими пользователями

К слову, Google Squared похож на сервис структурированных запросов Wolfram Alpha – программу вычисления знаний (computational knowledge engine), результат работы которой – выборка из собственной внутренней базы знаний.

О возможностей системы Wollram Alpha рассказывает её создатель, Стивен Вольфрам – британский физик, математик, писатель и бизнесмен, известный своими работами в таких областях как физика элементарных частиц, космология, клеточные автоматы, теория сложности и компьютерная алгебра, а также авторством программы Mathematica и собственно сервиса Wolfram|Alpha.

Видео (10:58)

[youtube width=”400″ height=”425″]http://www.youtube.com/watch?v=3mByu9Ap-a0[/youtube]

Факты:

  • Wolfram|Alpha – это 5 миллиноно строк кода на Mathematica (с использованием webMathematica и gridMathematica), которые работают на 10,000 CPU, база знаний, NLP-движок и библиотека алгоритмов
  • webMathematica – продукт, позволяющий веббраузеру выступать в роли интерфейса к удалённому Mathematica-серверу и запускать Mathematica-скрипты на любой платформе.
    Пример работы : ctg (Pi/2) ≈ 0
    webmathematica
    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”.
Tags: , , ,

Что такое теория относительности

June 3rd, 2009 No comments

Фильм Что такое теория относительности

Режиссер: Семен Райтбурт
Сценаристы: Семен Лунгин, Илья Нусинов, Семен Райтбурт
Производство: Моснаучфильм
Год выпуска: 1964
Актеры: Алла Демидова, Георгий Вицин, Алексей Грибов, Алексей Полевой, Георгий Тусузов

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

часть 1 (9:46)
[youtube]http://www.youtube.com/watch?v=PWtw7NcUZZ8[/youtube]
часть 2 (9:44)
[youtube]http://www.youtube.com/watch?v=yR7W3AWJox0[/youtube]

Теория относительности — термин, введённый в 1908 году Максом Планком с целью показать, как специальная теория относительности (и, позже, общая теория относительности) использует принцип относительности.

Специальная теория относительности

Специальная, или частная теория относительности — это теория структуры пространства-времени. Впервые была представлена в 1905 году Альбертом Эйнштейном в работе «К электродинамике движущихся тел». Теория описывает движение, законы механики, а также пространственно-временные отношения, определяющие их, при скоростях движения, близких к скорости света. Классическая механика Ньютона в рамках специальной теории относительности является приближением для малых скоростей.

Общая теория относительности

Общая теория относительности — теория гравитации, разработанная Эйнштейном в 1905—1917 годах. Является дальнейшим развитием специальной теории относительности. В общей теории относительности постулируется, что гравитационные эффекты обусловлены не силовым взаимодействием тел и полей, а деформацией самого пространства-времени, в котором они находятся. Эта деформация связана, в частности, с присутствием массы-энергии.

Советские познавательные фильмы

По ссылке http://www.youtube.com/view_play_list?p=879D5FB717145C79 находятся такие фильмы:

  • Физика в половине десятого – cоветский познавательный видеоролик, объясняющий некоторые основы физики.
  • В фильме Математик и чёрт (СССР, 1972) математик предлагает продать душу дьяволу за то, чтобы тот доказал или опроверг теорему Ферма.
    Редкий игровой научно-популярный фильм по рассказу Артура Порджеса “Саймон Флэгг и дьявол”.
  • Урок астрономии
  • Этот правый, левый мир – cоветский научно-популярный фильм о симметрии в нашем мире. По мотивам книги М. Гарднера.
    Центрнаучфильм, 1971
    Авторы сценария: С.Райтбурт, В.Шрейберг
    Режиссер: С.Райтбург.
    В ролях: д.т.н. проф.В.Шестаков

Приятного просмотра!

freenode.net java IRC client

June 2nd, 2009 No comments

http://java.freenode.net/ – способ пообощаться в сети IRC даже в том случае, если под рукой нет IRC-клиента.

Справка

freenode, ранее известная как Open Projects Network, – это популярная IRC-сеть, наиболее часто используемая для обсуждения проектов совместной разработки ПО. Точка входа в эту сеть – chat.freenode.net, который при подключении направляет на наиболее свободный сервер. freenode является наибольшей существующей FOSS IRC-сетью, обслуживающей более чем 50,000 пользователей и 10,000 каналов на 20 серверах.

История freenode.net

freenode стартовал как канал поддержки пользователей GNU/Linux с именем #LinPeople в сети EFnet. Поначалу на канале было всего 4 человека. В 1995 канал преобразован в собственную сеть, irc.linpeople.org, которая в начале 1998 года переименована в Open Projects Net (OPN) с 200 пользователями и 20 каналами. Вскоре OPN выросла и стала наибольшей сетью для сообщества свободного ПО, и 20 по размеру сетью в мире. Также создана Peer-Directed Projects Center – юридическое лицо для OPN. Позже домен OpenProjects.net был выставлен в качестве лота на eBay, но так и не был продан.

LEGO bar chart from Pentaho corp

June 2nd, 2009 No comments

http://wiki.pentaho.com/display/COM/Lego+Bar+Chart

По ссылке – инструкции как собрать Lego Bar Chart, который был продемонстрирован на Google I/O Conference Sandbox.  Конструкция состоит из 5 ползунков с независимыми сервоприводами плюс Java-программа для приёма данных из Pentaho’s BI Platform.

[youtube]http://www.youtube.com/watch?v=BHSTzFdjmK0[/youtube]

Для справки:

Pentaho Business Intelligence — opensource-проект компании Pentaho (Сан-Франциско) для построения отчётов, аналитики и сбора данных, автоматизации делопроизводства и документооборота (стандарт BPEL) и построения intranet-порталов предприятий. Первая версия появилась в 2005 г. С июля 2008 г. выпускается под лицензией GNU GPL v2.

В состав продукта входит набор интегрированных компонентов, стандартных для BI:

  • Pentaho Reporting JFreeReport (http://reporting.pentaho.org/) – дизайнер отчетов, аналог популярных open-source проектов BIRT и JasperReports. Может использовать в качестве источника данных любые СУБД, поддерживающие интерфейс JDBC.
  • Pentaho Data Integration Kettle ETL (http://kettle.pentaho.org/) – ETL модуль для интеграции исходных систем и хранилища Pentaho
  • Pentaho Analysis Mondrian OLAP Server (http://mondrian.pentaho.org/) – OLAP-сервер, позволяющий создавать отчеты для онлайн анализа данных, поддерживает язык запросов MDX
  • Pentaho Data Mining Weka (machine learning, http://www.pentaho.com/products/data_mining/) – инструмент для автоматизации сбора данных
  • Pentaho Dashboards (http://www.pentaho.com/products/dashboards/) – инструмент создания дэшбордов для мониторинга за ключевыми показателями деятельности предприятия
Tags: ,