1 янв. 2011 г.

Lock Coarsening, Biased Locking, Escape Analysis and others

Оптимизационные трюки, используемые при динамической компиляции jit'ом в java 6. В java 6 была существенно изменена (по сравнению с java 5) работа блокировок, существенно облегчив их, в java6u14 появился escape-анализ, который работает по-умолчанию, а так же много других интересных подходов.

31 окт. 2010 г.

Applicative-order evaluation vs Normal-order evaluation

Нормальным порядком вычисления (normal-order evaluation), если кратко, можно назвать такой порядок вычисления, что сперва происходит «полная подстановка, затем редукция».

Аппликативный порядок вычисления (applicative-order evaluation), напротив, сперва происходит «вычисление аргументов, затем вызов процедуры».

26 сент. 2010 г.

Hazelcast

hazelcast
In-Memory Data Grid for Java
hazelcast project on Google Code; Hazelcast.com
hazelcast documentation

Краткая история:
  • Start-up, основан 2008
  • Open source бизнес модель. Получение прибыли на консалтинге и поддержке самого Hazelcast
  • Более 100 пользователей, в основном в США и в Европе

16 июн. 2010 г.

Задача Льва Толстого

Продавец продаёт шапку. Стоит 10 р.

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

Мальчик прибегает и отдаёт 10 + 10 + 5.

Продавец отдаёт шапку и сдачу 15 руб.

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

На сколько обманули продавца ?

внимание! комментарии содержат ответ.

30 апр. 2010 г.

Задачка: Круглый стол

За круглым столом сидят два игрока.

Первый играет белыми круглыми фишками, второй - такими же, но чёрными.

Игрок должен положить на стол только одну фишку, после чего ход переходит к другому игроку.

Игрок проигрывает, если нет свободного места, чтобы положить фишку.

Как следует действовать игроку, начинающему игру, чтобы всегда выигрывать ?

28 апр. 2010 г.

Задачка: Мальчики

В семье два ребенка, причём один из них мальчик.

Какая вероятность что и другой тоже мальчик ?

Задачка: Сколько лет детям

Встречаются 2 друга
- Привет
- Привет
- Как дела?
- Растут два сына дошкольника.
- Сколько им лет?
- Произведение их возрастов равно количеству голубей около скамейки.
- Этой информации мне не достаточно.
- Старший похож на мать.
- Вот теперь я знаю сколько лет твоим детям.

Сколько лет детям?


внимание! комментарии содержат ответ.

20 апр. 2010 г.

Задачка: Таблетки

В джунглях тебя укусила ядовитая змея.

В аптечке есть 4 таблетки - две типа А две типа Б, причём выглядят абсолютно одинаково.

Противоядие - одна таблетка типа А и одна таблетка типа Б.
Во всех других случаях умираешь от змеиного яда (т.е если выпить две таблетки А, или две Б или выпить сразу 2 А и 2 Б)

Как стоит действовать?

17 апр. 2010 г.

java: How to get PrintAssembly

Thanks to Roman Yaroslavtsev who gave me a link to an article Memory Barriers and JVM Concurrency.

First of all this article is useful to gain a better understanding of Java Memory Model - another great thing that I discover is ability to look inside of assembly code generated by jit.

28 мар. 2010 г.

FP-approach in Java via Goolge Collections

I'm going to demonstrate some elements of functional programming (fp) approach in java.

For this purpose I use Google Collections Library - provides new and elegant collection types as well as some fp elements and techniques.