16 апр. 2009 г.

Java: Классический dead lock

Классический dead lock (Java Concurrency In Practice, p.10.1):
When a thread holds a lock forever, other threads attempting to acquire that lock will block forever waiting. When thread A holds lock L and tries to acquire lock M, but at the same time thread B holds M and tries to acquire L, both threads will wait forever. This situation is the simplest case of deadlock (or deadly embrace), where multiple threads wait forever due to a cyclic locking dependency. (Think of the threads as the nodes of a directed graph whose edges represent the relation "Thread A is waiting for a resource held by thread B". If this graph is cyclical, there is a deadlock.)

Пример иллюстрирующий пробему:
Есть сущность типа счёт, необходимо реализовать сервис типа переводчика денег с одного счёта на другой.

Для определённости стоит уточнить, что счетов с системе очень много (скажем, несколько миллионов) и порядка несколько тысяч операций в секунду (всё многопоточно).

18 мар. 2009 г.

Gentoo: Numpty Physics, my 1st ebuild

Я использую Gentoo GNU/Linux постоянно и дома, и на работе с очень давних пор - поэтому как-то гложила меня мысль, что стоит что-то хорошее делать для такого хорошего дистрибутива - ведь как известно в Gentoo делятся на тех, кто делает ebuild'ы и на тех, кто их ждёт.

15 мар. 2009 г.

Picasa for Linux

С одной стороны официальный FAQ Picasa for Linux говорит, что крайняя стабильная версия Picasa for Linux 2.7.

С другой стороны, с официальной страницы Picasa for Linux можно взять Picasa 3 for Linux (beta) v.3.0.0.57.4402.0 beta

И в конце концов, Google не скрывает, что Picasa for Linux перенесена при помощи Wine - для этого гугловоды интенсивно патчат wine - и доступная версия под Windows это никакая не beta, а вполне себе нормальная v.3.1.0.70.7300.0.

2 мар. 2009 г.

Python: двухмерный массив

Если теория подтверждается экспериментом - это хорошо,
если не подтверждается - это интересно.

Потребовалось красиво создать boolean двухмерный массив, например 3 * 3, на python:
[[False]*3]*3
Коллега подсказал, что возможны

27 февр. 2009 г.

Advertisement Madonna BMW "Star"

BMW commercial directed by Guy Ritchie and feat. Madonna

Qt/C++ Сборка своей dll под Windows

Описание буду вести о сборке библиотеки, которая использует Qt, но многие замечания будут актуальны и в общем случае.

Потребовалось собрать библиотеку собственных Qt компонент.

25 февр. 2009 г.

Задачка для шестиклассников

Привет от Павла Куракина:
задачка для шестиклассников :
1 / ( 1 * 2 ) + 1 / ( 2 * 3 ) + 1 / ( 3 * 4 ) + ... + 1 / ( 99 * 100 ) = ?

Задачка про наблюдательного оленя

По просьбе народа публикую задачку подкинутую мне Павлом Куракиным:

Физика 8 класс, под ред. С. В. Громова.
Задача №.109:
В озеро упала ветка. Пробегавший мимо олень успел заметить, что волна, созданная падением ветки, дошла до берега за 10 с, причем расстояние между соседними гребнями волн было равно 10 см и за 2 с было 4 всплеска о берег. Помогите оленю определить, как далеко от берега упала ветка.

24 февр. 2009 г.

Сборка WebKit под GNU/Linux

WebKit logo WebKit в представлении не нуждается.

На основе WebKit это конечно же Safari под MacOsX и Google Chrome под Windows, а также несколько поделок-свистелок типа Arora - как пример WebKit с Qt front-end'ом и Midori - WebKit c Gtk+ front-end'ом - о них и пойдёт речь, дабы собрать поиграться в эти игрушки под пингвином.