Archive

Archive for May, 2010

Слова к музыке из The Neverhood.

May 23rd, 2010 4 comments

Терри С. Тейлор, что написал музыкальное сопровождение для The Neverhood, – оказывается еще тот перец. Я тут прочитал слова к музыке из The Neverhood и прослезился. Во первых, слова (наиболее разборчивых) песен выглядят вот так:

mmm mmm mmm mmm….

Homina budda budda budda
Homina budda boo
Homina budda budda budda
Homina budda boo

Olley olley olley olley olley he he heeeee….
olley olley olley olley olley (oxen free) he he he

Примерный (и в основном фонетический) перевод ;-) :

Ммм ммм ммм ммм…

Хомана будда будда будда
Хомана будда буу
Хомана будда будда будда
Хомана будда буу

Олей олей олей олей олей хе хе хеееее…
Олей олей олей олей олей (бык свободен) хе хе хе

Хотя на счет «oxen free» у меня есть большие сомнения. :-)

Но там кроме слов еще и примечания есть:

(note to the listener: Should you chose to sing along to any of the following songs, we wish you luck. You’re gonna need it!)

(примечание слушателям: Мы желаем вам удачи, в случае если вы собираетесь подпевать любой из нижеследующих песен. Она вам понадобится!)

Верно подмечено:

(and other various gruntings)

(и прочие разные хрюканья/бормотания)

2nd verse, same as the first! (kinda)

И второй раз, точно также как первый (типа)

Или вот, ну попалась одна неразборчивая песня, ну что тут поделать:

(uninterpretable gibberish, except for “I don’t know!”)

(непереводимая чепуха, за исключением «Я не знаю!»)

:-)

«Угон» потоков.

May 4th, 2010 13 comments

Бывает так, что требуется выполнить свой код в контексте произвольного потока. Либо в своем потоке, но в то время когда поток выполняет чужой код. Например, сборщик мусора может хотеть перехватить управление, даже если поток крутит бесконечный цикл. Один из методов перехвата – использование функций GetThreadContext и SetThreadContext. Эти функции позволяют манипулировать контекстом потока – т.е. состоянием регистров процессора, в том числе и указателем на текущую выполняемую инструкцию. В простейшем случае перехватчик приостанавливает поток, сохраняет текущий контекст, модифицирует EIP, чтобы тот показывал на нужный код, и снова запускает поток. При обратном переключении просто восстанавливается ранее сохраненный контекст и все. Метод простой, эффективный и … неработающий. :-)

Read more…