Wednesday, January 26, 2011

Ад и физика

Вот реальный вопрос на тесте по физике в NUI Maynooth (Kidare, Ireland).
Ответ одного из студентов был настолько "глубоким", что профессор решил
поделиться им в сети.

ВОПРОС: Как бы Вы описали Ад - как экзотермичную (отдает тепло), или как
эндотермичную (абсорбирует тепло) систему?

Большинство студентов пытались описать Ад с помощью закона Бойля, типа газ при
расширении охлаждается и температура при давлении падает.

Один из студентов написал:

Сначала мы должны выяснить, как изменяется масса Ада с течением времени. Для
этого нужно знать, сколько душ прибывает в Ад и сколько душ его покидает. Я
считаю, что если душа попадает в Ад, покинуть она его не может. На вопрос,
сколько душ прибывает в Ад, нам помогут ответить различные религии, существующие
сегодня в мире. Большинство из этих религий утверждает, что души людей, не
принадлежащих их церкви однозначно попадают в Ад. Поскольку человек не может
принадлежать больше чем к одной религии, можно однозначно утверждать что ВСЕ
души попадают в Ад. Приняв во внимание индексы рождаемости и смертности, можно
предполагать, что число душ в Аду растет экспоненциально.

Рассмотрим теперь вопрос изменения объема Ада. Чтобы в Аду поддерживать
одинаковую температуру и давление, объем его должен увеличиваться
пропорционально увелечению количества душ - согласно закону Бойля. Иначе говоря
мы имеем 2 варианта:

1. Если Ад расширяется медленнее, чем растет число пребывающих душ, то
температура и давление там будут расти до тех пор, пока Ад просто не развалится.

2. Если же Ад расширяется быстрее, тогда температура и давление падают - Ад
замерзнет.

Каков из вариантов правильный?

Взяв за основу высказывание Анжеллы на первом курсе, что "в Аду скорее настанет
зима, чем я с тобой пересплю", а так же тот факт, что сегодня мы проснулись
вместе - мы придем к однозначному выводу, что Ад замерз. Из этого следует, что
Ад не в состоянии более принимать души. Остается только Рай - что и подтверждает
наличие Бога. Этим, видимо, и объясняется тот факт, что Анжелла всю прошлую ночь
кричала: "О, Боже!"

Студент получил "отлично" единственный на курсе.

Wednesday, May 26, 2010

How does Java allocate stack and heap memory? Explain re-entrant, recursive and idempotent.

Each time an object is created in Java it goes into the area of memory known as heap. The primitive variables like
int and double are allocated in the stack, if they are local method variables and in the heap if they are member
variables (i.e. fields of a class). In Java methods local variables are pushed into stack when a method is invoked
and stack pointer is decremented when a method call is completed. In a multi-threaded application each thread
will have its own stack but will share the same heap. This is why care should be taken in your code to avoid any
concurrent access issues in the heap space. The stack is threadsafe (each thread will have its own stack) but the
heap is not threadsafe unless guarded with synchronisation through your code.


A method in stack is reentrant allowing multiple concurrent invocations that do not interfere with each other. A
function is recursive if it calls itself. Given enough stack space, recursive method calls are perfectly valid in Java
though it is tough to debug. Recursive functions are useful in removing iterations from many sorts of algorithms. All
recursive functions are re-entrant but not all re-entrant functions are recursive. Idempotent methods are methods,
which are written in such a way that repeated calls to the same method with the same arguments yield same
results. For example clustered EJBs, which are written with idempotent methods, can automatically recover from a
server failure as long as it can reach another server.

(from http://javapeople.blogspot.com/2007/02/how-does-java-allocate-stack-and-heap.html)

Sunday, July 26, 2009

Server virtualization

На данный момент доступны следующие(основные) технологии реализующие виртуализацию на уровне ядра операционной системы(это, конечно, не полный список):

  • Xen (Novell© support , partal use in Hyper-v)[не поддерживает Windows guest OS ]
  • Hyper-V (Microsoft© virtualization system)
  • Jail (FreeBSD)[только BSD]
  • OpenVZ [только GNU/Linux]
  • KVM (IBM© support,RedHat© support)
  • Oracle VM (Oracle©)

Из выше перечисленных только KVM(тут самая широкая поддержка), Hyper-V і Oracle VM поддерживают разные операционные системы(Linux, Windows, Frebsd) в качестве виртуальных мишин.

Oracle VM, наверно, хороший, полагаясь на бренд, но минимильная подписка на него составляет ~600$. В архитектурных описаниях я не нашел ничего впечатляющего в этом продукте, по большой части потому что большая часть их закрыта, Продукт продвигается в большой мере для кластирных стем и на сколько удалось понять не поддерживает Windows как и большинство технологий аппаратных виртуализаций.

Hyper-V технология, которая впервые была представлена в Windows Server 2008 представляет собой интересный но не достаточно оправдавший себя продукт виртуализации, но это касается только R1. В Windows server 2008 R2 предлагается новая версия этого продукта, при этом над ним довольно хорошо поработали, как собственно над всем R2(другая реализация ядра). Теперь он собой представляет намного более интересны продукт. Часть его позаимствована от linux, а также Microsoft предложил свой вклад в ядро linux (примерно 20 000 строк кода). Этот код (патчи) должны позволить существенно увеличить производительность Hyper-V. Предположительно, Hyper-V является довольно хорошим продуктом для виртуализации, но одно “но”, существенное- патчи еще не применены и находятся на стадии рассмотрения, Windows Server 2008 R2 еще не вышел и находится в стадии RTM (7600 build) - то есть продукт готов но в мир еще не ушел как релиз, но использовать можна уже (некоторые компании уже используют как сервера VDS).

KVM(Kernel Virtual Machine). Очень удачная технология виртуализации разрабатываемая Qumranet активно поддерживаемая RedHat© і IBM©. Представляет собой реализацию виртуализации на уровне ядра. KVM имеет самую широкую поддержку гостевых операционных систем. Технология была выбрана вендерами после долгого скитания с Xen. В KVM присутствует реальная поддержка апаратной виртуализации (работа нескольких OS на одном и том же реальном процессоре или другом оборудовании сервера) в отличие от Hyper-V который, на текущий момент дает только виртуально представление о аппаратной части. В сентябре 2008 года Red Hat© купила Qumranet. По этому продукты Red Hat© (Red Hat Enterprise Server®) становятся довольно интересны в плане коммерческой поддержки и уровня интеграции. Стоит отметить что KVM также доступна для других дистрибутивов в полной мере.

Виртуализация на уровне ядра требует соответствующее серверное оборудование, речь идет о процессорах поддерживающих технологии Intel VT (Virtualization Technology) либо AMD SVM (Secure Virtual Mashine) {AMD-V}.


Wednesday, June 17, 2009

Sunday, December 28, 2008

Ajaxa Security


Ajax Security

From: joewalker,
2 years ago


Ajax Security
View SlideShare presentation or Upload your own. (tags: xss web)



A talk from the Ajax Experience



SlideShare Link

Saturday, October 18, 2008

yop!

Start now!