Archive for August, 2010

@Future: some breaking presentation from slideshare

Monday, August 23rd, 2010

http://www.slideshare.net/matthewbuckland/future-web-trends It is understandable what it is about. Web trends with attention on how technologies would change society

http://www.slideshare.net/guestaddc42/shaping-the-future-presentation here all the future related things is provided. Futuru based researches for business, transhumanism, future and green strategies, future institutes which study future, games theory and many more things. But a warning – there is lots of text.

http://www.slideshare.net/whatidiscover/the-future-of-work-presentation There are following roles listed:

seeking a Collective Intelligence Officer to oversee improvisational human resources for our company.
Collective Intelligence Officer

seeking an Amplification Engineer to improve organizational innovation by creating more flexible, personalized, and “augmented” work plans for individual employees.
Amplification Engineer

seeking a Chief Visualization Officer —or “Data Whisperer”—to devise new ways of visualizing our
business.
Chief Visualization Officer

Data Ecologist seeking a Data Ecologist to design and manage both private and public data clouds related to our business.

seeking an Affinity Agent to build shared values and vision among highly diverse collaborators.
Affinity Agent

seeking a Junior Catalyst to spark new and experimental collaborations that emphasize diversity as source of innovation.
Junior Catalyst

seeking a Chief Wellness Officer to implement and oversee a culture of health at the workplace.
Chief Wellness Officer

seeking a Biocitizen Liaison to serve as the primary point of contact between senior management and the members of our company’s various social health networks.
Biocitizen Liaison

seeking a Senior Green Strategist to minimize our organization’s resource usage while maximizing productivity and profit.
Senior Green Strategist

seeking an Ecotect for a complete and custom “sustainability make-over” of our work environment.
Ecotect

seeking a Cognitive Resources Manager to coordinate and augment mental efforts at the workplace.
Cognitive Resources Manager

seeking a Neurological Training Officer to improve cognitive fitness among our employees.
Neurological Training Officer

Новости сайта

Monday, August 23rd, 2010

Друзья, раздел “Вартыя кнігі” пополнился двумя новыми книгами о физике. Они написаны в популярной, просветительской форме – так что – читайте!

Также вышел новый выпуск рассылки на subscribe.ru, называется он так “Догматизм – признак шудр тысячелетия три”. Можете прочитать его по следующей ссылочке http://subscribe.ru/archive/psychology.conscious/201007/30103813.html, а лучше – просто подпишитесь на мою рассылку (форма подписи находится на шапке сайта)!

До встречи!

Классные сервисы встречаются :)

Monday, August 23rd, 2010

Захотелось оставить отзыв о работе двух компаний по ремонту ноутбуков.

Первая из них – rst.by. Я позвонил задать вопрос по матрице ноутбука, который недавно купил близкий человек. Они не были гарантийной компанией, но просто одной из первых в поисковике по запросу “беларусь + ремонт ноутбуков”. Человек, поднявший трубку, достаточно долго рассказывал мне об особенностях матриц, дал несколько рекомендаций, а в конце я ему рассказал о второй проблеме – на этот раз у меня в ноутбуке. Я – программист, и очень много стучу по клавишам. Из-за этого несколько клавиш начали функционировать не так, как полагается. Так вот, этот человек предложил просто к ним заехать и набрать бесплатно резиновых подкладочек для клавиатуры. Очень приятно.

Вторая компания http://vremont.by. Также, достаточно долго со мной общались, ответили на все вопросы, а позже дали несколько советов о начинке ноутбуков, посоветовали, что стоит покупать, а что нет. Респект.

@Mind maps: полезные mind maps for you

Sunday, August 22nd, 2010

Ребята, на сайте замечательной компании Mind Jet, которая делает замечательную программу Mind Manager, которая, в свою очередь, позволяет реализовывать в свей жизни замечательную концепцию mind maps (карты памяти) я скачал выборочно несколько карт памяти, которые могут быть полезными для вас.

Это:
Brainstorming Basics.mmap
Develop a Business Plan Template.mmap
Event Planning.mmap
Many Uses of Mind Maps.mmap
Project Process Template.mmap
Study Method.mmap
Всё эти карты памяти вы можете бесплатно скачать здесь

http://zmicer.com/wp-content/uploads/mindmaps/

Счастливого использования!

@java: reference cards from dzone download in one place

Sunday, August 22nd, 2010

Hi, guys!

You could noticed that access to the great java reference cards at http://refcardz.dzone.com is quite comprehensive. Firstly you need register, then choose a card, then get email, and only then get a straight link to download and then make downloading.

For you I have just downloaded all rather interesting cards (on java domain) and shared them at jazzteam conpany sourceforge open source educational project JazzTeamEdu. Please consider which cards you want here https://jazzteamedu.svn.sourceforge.net/svnroot/jazzteamedu/JazzTeamLibrary/java%20literature/refcards/

Below you could find a list of cards to be used:

rc001-gwt_style_online.pdf
rc002-ajax_online.pdf
rc003-eclipse_online.pdf
rc004-spring_online.pdf
rc007-jquery_online.pdf
rc008-designpatterns_online.pdf
rc015-groovy_online.pdf
rc017-adobeflex_online.pdf
rc019-corecss1_online.pdf
rc020-010d-struts2_0.pdf
rc021-JSF_Online.pdf
rc022-JPA_Online.pdf
rc023-php_online.pdf
rc024-corejava_online.pdf
rc025-corecss2_online.pdf
rc026-springannot_online.pdf
rc028-010d-junit_0.pdf
rc029-010d-mysql.pdf
rc030-010d-ruby.pdf
rc031-010d-seam_2.pdf
rc032-010d-hibernate_search_0_1.pdf
rc033-010d-jsp.pdf
rc034-010d-css3.pdf
rc035-010d-xml.pdf
rc037-010d-equinox.pdf
rc038-010d-soa.pdf
rc039-010d-emf.pdf
rc042-010d-seam_ui_6.pdf
rc044-010d-richfaces_0.pdf
rc047-010d-enterprise_integration_patterns_1.pdf
rc050-010d-scrum_2.pdf
rc055-010d-apachemaven-1.pdf
rc057-010d-springdm_0.pdf
rc058-010d-jsf2.pdf
rc059-010d-drupal_1.pdf
rc060-010d-getting-started-grails_2.pdf
rc061-010d-java_concurrency_1.pdf
rc062-010-eclipse_rcp_0.pdf
rc064-010d-core_html_1.pdf
rc070-010d-eclipse-plugin-dev_0.pdf
rc076-010d-domain-driven-design_2.pdf
rc077-010d-bpel.pdf
rc078-010d-virtualization_1.pdf
rc079-010d-google-app-engine-4.pdf
rc081-010d-fsharp.pdf
rc082-010d-cloud-computing-1.pdf
rc083-010d-cdi-java_5.pdf
rc084-010d-continuous-integration_1_0.pdf
rc086-springwebflow_refcardv4.pdf
rc087-010d-ci_servers_tools_0.pdf
rc089-010d-zendframework-2.pdf
rc094-010d-git_1.pdf
rc095-010d-javaguidev_1.pdf
rc098-010d-repositorymanagement_0.pdf
rc099-010d-javaeesecurity_5.pdf
rc101-010d-jdbc_0.pdf
rc104-010d-apacheant_1.pdf
rc106-010d-springsecurity_2.pdf

@software_tips: opera as downloader

Sunday, August 22nd, 2010

Век живи – век учись!

Так и я сегодня :) Проблема то в чём была? Скачивал java reference cards (небольший pdf файлы с большим количеством сжатой информации). Сам процесс скачивания с сайта refcardz.dzone.com достаточно утомителен – сначали нужно зарегиться, потом выбрать, что скачивать, потом высылается email, где есть ссылка на файл, который нужно скачивать.

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

Задача очень простая. Есть прямая ссылка на pdf, и нужно очень быстро её скачать без загрузки в браузер. И оказывается, если выбрать downloads панель, то там есть небольшое edit поле с названием “quick download”.

В общем, раньше я этим не пользовался, и вот, после n лет использования оперой – нахожу такие неиспользованные возможности.

Пока!

@Java: JUnit

Friday, August 20th, 2010

Здравствуйте!
Всем любителям юнит-тестирования рекомендую почитать статью http://www.interface.ru/home.asp?artId=6561 под названием “Переходим на JUnit 4 (исходники)”.

Приведу несколько примеров, которые позволяют быстрее создавать тесты:
1) Параметр expected аннотации @Test, например
@Test(expected=IndexOutOfBoundsException.class)

Например, если у нас есть такой класс

public class SimpleStupidBean {
	public void throwableMethod() {
		throw new IllegalArgumentException();
	}
}

то раньше, чтобы проверить, что действительно выбросился нужный тип исключения при вызове метода, мы делали:

	@Test
	public void testOldStyleExceptionCheck() throws Exception {
		try {
			bean.throwableMethod();
		} catch (Exception e) {
			Assert.assertTrue(e instanceof IllegalArgumentException);
		}
	}

В случае JUnit3.x вместо @Test, Assert.assertTrue мы использовали другой подход – наследовались от TestCase, делали название тест-метода начинающимся с test, и использовали унаследованный метод assertTrue с теми жа аргументами :)

Вообще reflexion в java приобретает всё большую силу. Такие серьёзные фреймворки, как Seam, Spring, Hibernate, EclipseLink обязаны своей серьёзностью использованию reflexion. Вот и создатели JUnit решили взять себя в руки.

2) Ещё один пример, демонстрирующий, как запускать тесты в сьюте – то есть несколько тестов за один раз.

Раньше мы это делали примерно так:

public class JUnit4SuiteOldStyleRunner {
	@Test
	public static TestSuite suite() {
		TestSuite suite = new TestSuite(JUnit4SuiteModernRunner.class.getName());

		suite.addTestSuite(JUnit4Tester.class);

		return suite;
	}
}

А сейчас – всё намного быстрее!

@RunWith(Suite.class)
@SuiteClasses({ JUnit4Tester.class })
public class JUnit4SuiteModernRunner {
}

Кстати, вот здесь http://junit.sourceforge.net/doc/faq/faq.htm лежит очень и очень хороший FAQ по тестам, а ещё из вкусненького – обратите внимание на аддоны к стандартному junit4, которые лежат по адресу http://junit-addons.sourceforge.net/ которые позволяют делать вот такие вот дела:

DirectorySuiteBuilder builder = new DirectorySuiteBuilder();
builder.setSuffix("Test");
Test suite = builer.suite("/home/project/myproject/tests"); 

Из ссылочек могу посоветовать вот такую, говорящую саму за себя http://www.delicious.com/Zmicer/junit

3) Для самых любознательных и терпеливых – расскажу о параметризованных тестах. Прошу любить и жаловать. Вначале нам нужно составить тест, притом в качестве данных он должен использовать приватные члены класса

Вначале – метод, который мы тестируем

/**
* Get length of string without checking on null.
*
* @param str
* @return
*/
public int getStringLength(final String str) {
return str.length();
}

Далее – объявляем статический метод, возвращающий пары тестовых значений.

@Parameters
public static Collection getParams() {
// check extreme values.
return Arrays.asList(new Object[][] { { null, -1 }, { "", 0 }, { "123", 3 } });
}

Ещё нам нужны переменные – члены этого класса, которые будут принимать значение. По задумке, первое значение – это строка, а второе – код выполнения. Если -1 – значит тест должен проверять на исключение. А также конструктор, передающий параметры членам класса, и специальная аннотация уровня класса, говорящая, как запускать тест.

@RunWith(Parameterized.class)
@RunWith(Parameterized.class)
public class JUnit4Tester {
private SimpleStupidBean bean = new SimpleStupidBean();

private String stringToCheck;
private int resultCode;

public JUnit4Tester(String toCheck, int result) {
stringToCheck = toCheck;
resultCode = result;
}

А теперь – сам тест. В статье, на которуя я ссылаюсь вначале этого поста, нет generic примера обработки параметров, поэтому исправляю ситуацию:


@Test
public void checkParameters() throws Exception {
int realResult;
try {
realResult = bean.getStringLength(stringToCheck);
if (realResult == -1) {
// error - exception should have been thrown...
// here we even could add type of exception - for this we need change getParams method
Assert.fail("Exception should have been occur for the string [" + stringToCheck + "]");
}
Assert.assertEquals(realResult, resultCode);
} catch (Exception e) {
if (resultCode != -1) {
// it is not ok, -1 says to us that exception should occur, but here we do not have -1 in the expected
// result value.
Assert.fail("Exception [" + e.getMessage() + "] occurred for string [" + stringToCheck
+ "], but result should have been [" + resultCode + "]");
}
}
}

Результат работы параметризованного теста

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

В конце – расскажу вот такую деталь. Если вы смешали в одном классе два подхода – используя аннотации и старый, когда мы наследовались от базового класса TestCase, входящего в состав JUnit, то знайте, что аннотации тут работать не будут. При запуске вы увидите только методы, начинающиеся с test.

Все примеры можно найти по следующему SVN адресу:
https://jazzteamedu.svn.sourceforge.net/svnroot/jazzteamedu/

А внутри репозитория путь такой \JazzTeamEdu\src\org\jazzteam\edu\junit4\