воскресенье, 18 апреля 2010 г.

Glyka Glyka

Чё-то нравится мне в последнее время греческая попса.
Очередной шедевр:



Пока не докопался, кто же является автором песни, и греки, и турки с большим удовольствием её исполняют:


А вот ещё одна инкарнация этой же песни, турецкая, что-то из старого.



Но греки не признают авторства турков, настаивая на том, что оригинал был записан в Греции в 50-х, автором был Мakis Вasileiadis, а пела Giota Xalkia. Эту песню я не нашёл, к сожалению.

суббота, 17 апреля 2010 г.

Kaneis Lathos



Κι αυτό το βράδυ αναρωτιέμαι για σένα
Αν τη δικιά μας αγάπη θα την τελειώσει ένα δάκρυ
Θα την τυλίξει σκοτάδι, χάνω μωρό μου εσένα
Μόνο τις φίλες σου βλέπεις
Με προσπερνάς, μ’ αποφεύγεις
Πού είναι οι δικές σου οι βλέψεις
Κάνω πάλι προβλέψεις
Γιατί με τρώνε οι σκέψεις
Αν βαρεθείς τα φιλιά μου
Μ’ άλλον τώρα θα μπλέξεις
Το αισθάνομαι
Άκουσέ με

Πίνω, καπνίζω, φωνάζω
Με τη σκέψη τρομάζω, νευριάζω
Δε μ’ αγαπάς κι αρρωσταίνω, ναι
Πες μου τώρα αλήθεια στα ίσια
Αν θα φύγω μοναχός, τρελαίνομαι..

Κάνεις λάθος, μωρό μου, κάνεις λάθος
Το ξέρεις κατά βάθος πως είσαι της ζωής μου θησαυρός
Λάθος, αν φύγεις θα ‘ναι λάθος
Το ξέρεις κατά βάθος μες στην καρδιά μου είσαι μοναδικός..

Δεν έχεις χρόνο για μένα
Όλο δουλειά έχεις πάλι
Το κινητό σου χτυπάει
Αλλά δεν είναι από μένα
Με τις ώρες κουβέντα
Σου λέω «πες μου ποιος είναι»
Κάποια φίλη, μου λες, με περίεργο βλέμμα
Όλο ψώνια καινούργια
Τα δικά μου τραγούδια
Που τα γράφω μ’ εσένα
Τ’ ακούς τώρα με άλλους
Πες μου κάτι, ένα ψέμα
Πως μου ντύνεσαι πάλι
Έλα πες μου πού πας
Θέλω να ξέρω επιτέλους

Μ’ ακούς;
Τι έχει γίνει μ’ εσένα;

Κάνεις λάθος, μωρό μου, κάνεις λάθος
Το ξέρεις κατά βάθος πως είσαι της ζωής μου θησαυρός
Λάθος, αν φύγεις θα ‘ναι λάθος
Το ξέρεις κατά βάθος μες στην καρδιά μου είσαι μοναδικός..

Κι αυτό το βράδυ αναρωτιέμαι για σένα..

Κάνεις λάθος, μωρό μου κάνεις λάθος..

Κι αυτό το βράδυ αναρωτιέμαι για σένα..

Λάθος, αν φύγεις θα ‘ναι λάθος..

Κάνεις λάθος, μωρό μου, κάνεις λάθος
Το ξέρεις κατά βάθος πως είσαι της ζωής μου θησαυρός
Λάθος, αν φύγεις θα ‘ναι λάθος
Το ξέρεις κατά βάθος μες στην καρδιά μου είσαι μοναδικός..

Битва титанов

А "Битва Титанов" - мне понравилась. Правда, про титанов там ни слова, и фильм снят "по мотивам" древнегреческой мифологии... Но - кого это волнует!
Зато снято красиво. Монстры - в асортименте, прорисованы на совесть, особенно Медуза. Боевые сцены - моё почтение, сидя на своём месте выл от восторга, а разок ажно пот со лба украдкой утёр. Актёры играют как надо. Сэм Уортингтон отрабатывает на 120% оказанное ему доверие (шутка ли, почти во всех последних блокбастерах отметился).
А ещё ... снято без пафоса (ё-моё, тоже ведь греческое слово). Не длинная и нудная эпическая сага, а бодрый такой экшн, причём от старта и до финиша. Тема любовных отношений с Ариадной не раскрыта, но оно и к лучшему, авторы не стали портить добротный боевик соплями с сахаром.
Резюмирую: почитателям древнегреческой мифологии - срочно смотреть, а затем обсуждать между собой киноляпы и несостыковки с оригиналом, их там богато.

Упдате: Вру, титаны в фильме всё де присутствуют. Медуза например, по легенде являлась титанидой, ну и грайи с одним глазом на троих. Так что, был не прав, титаны там всё же присутствуют.

среда, 14 апреля 2010 г.

Однокласники, my ass!

Блин, держался долго, несколько лет! Все фанатели, а я - настойчиво игнорировал. На меня наседали, давили, соблазняли. А я - лицо кирпичом и дальше в игнор.
А сегодня что-то дал слабину. Раздобрел наверно после тренировки да сытного ужина. С котлетой по-киевски, ага, как уж тут не раздобреть?
Одним словом, дай, думаю, зарегистрируюсь! Ага, ввёл логины, пароли, адреса, явки, фотку посимпатишнее загрузил. И тут - получи, фашист, гранату! Поп-ап вываливается! Оказывается, чтоб закончить регистрацию, надо СМС послать, за 15 ЕЕКов. Ибо, понимаешь ли, это-защита от спама, ага! И только благодаря этому СМСу я смогу насладиться всёй полнотой общения: подарки, оценки фоток и т.д.
Ну я пятой точкой чуствую - налюбить меня хотят! Расстроился, ну думаю, друзей - то они мне без СМС-а дадут найти. Какое там. Мерзкий попап выскакивает постоянно и настойчиво требует 15-ти крон.
Ладно, думаю, раз такая пьянка пошла - закрою-ка я этот аккаунт. Не тут-то было! Мерзкий попап и это мешает сделать!
В общем, на Жаднокласники - ни ногой!

Многопоточность в Java, Kilim

Многопоточность - одна из самых неоднозначных особенностей в Джаве. С одной стороны, Треды, Раннаблы и синхронизирующие блоки - это мощнейший инструмент, с помощью которого решается задача практически любой сложности. С другой стороны, программирование с помощью треадов чересчур сложно и нетривиально. Допустить ошибку очень легко, найти же - сложно.
Именно поэтому языки типа Scala, заточенные на многопоточное программирование, набирают популярность. В основе многопоточности Scala - т.н. Actor's framework. Вместо Треадов - Акторы, вместо "совместного использования рессурссов" - обмен сообщениями, концепция упрощается, следовательно и ошибок будет меньше.
Отрадно видеть, что и мир Java не стоит на месте. Первая ласточка - Kilim, фрэймворк для Java, использующий парадигму Акторов.
А вот и статья на эту тему: http://www.ibm.com/developerworks/java/library/j-javadev2-7.html
Судя по статье - действительно удобная библиотека. Единственный минус, который сразу бросается в глаза - необжодимость дополнительной "обработки" скомпилированных классов с помощью вивера.

среда, 7 апреля 2010 г.

Oracle AQ - Listener

Сегодня решал очередную проблему. Проблему подкинули наши деловые партнёры. Подкинуть-подкинули, а решать пришлось мне.
Словом, в очередь Oracle AQ пишется сообщение в XML-формате. Сообщение необходимо передато в другой програмный модуль, но при этом добавив к нему Namespace. То есть, необходимо каким-то образом слушать очередь входящих сообщений, трансформировать их, и передавать дальше. Вот как я это решил:

-- Создал очередь для выходящих сообщений
BEGIN
DBMS_AQADM.create_queue_table (
queue_table => 'jmsuser.JMS_QUEUE_OUT_TABLE', queue_payload_type => 'SYS.AQ$_JMS_TEXT_MESSAGE');

DBMS_AQADM.create_queue (
queue_name => 'jmsuser.JMS_QUEUE_OUT',
queue_table => 'jmsuser.JMS_QUEUE_OUT_TABLE');

DBMS_AQADM.start_queue (
queue_name => 'jmsuser.JMS_QUEUE_OUT',
enqueue => TRUE);
END;
/

--
-- Процедура - обработчик, читает из входю очереди, пишет в выход. очередь
--
-------------------------------------------------------
CREATE OR REPLACE procedure notifyAbout(
context raw,
reginfo sys.aq$_reg_info,
descr sys.aq$_descriptor,
payload raw,
payloadl number)
AS
dequeue_opts DBMS_AQ.dequeue_options_t;
enqueue_opts DBMS_AQ.enqueue_options_t;
message_props DBMS_AQ.message_properties_t;
message_handle RAW(16);
msg SYS.AQ$_JMS_TEXT_MESSAGE;
msqOut SYS.AQ$_JMS_TEXT_MESSAGE;
xml VARCHAR2(32000 CHAR);
BEGIN
-- get the consumer name and msg_id from the descriptor
dequeue_opts.msgid := descr.msg_id;
dequeue_opts.consumer_name := descr.consumer_name;

-- Dequeue the message
DBMS_AQ.DEQUEUE(queue_name => descr.queue_name,
dequeue_options => dequeue_opts,
message_properties => message_props,
payload => msg,
msgid => message_handle);

dbms_output.put_line('Dequeued '||message_handle) ;

-- Change the payload
msg.get_text(xml);
xml := replace( xml, '<:RESPONSE', '<:RESPONSE xmlns="http://www.lodestarcorp.com" ');

-- Enqueue the new message
msqOut := sys.aq$_jms_text_message.construct;
msqOut.set_text(xml);

DBMS_AQ.enqueue(queue_name => 'jmsuser.JMS_QUEUE_OUT',
enqueue_options => enqueue_opts,
message_properties => message_props,
payload => msqOut,
msgid => message_handle);
DBMS_OUTPUT.put_line (message_handle);

commit;
END;
/

--
-- Регистрация листенера
--
DECLARE
reginfo1 sys.aq$_reg_info;
reginfolist sys.aq$_reg_info_list;

BEGIN
-- register for the pl/sql procedure notifyCB to be called on notification
reginfo1 := sys.aq$_reg_info('jmsuser.JMS_QUEUE',
DBMS_AQ.NAMESPACE_AQ,
'plsql://jmsuser.notifyAbout',
HEXTORAW('FF'));

-- Create the registration info list
reginfolist := sys.aq$_reg_info_list(reginfo1);

-- do the registration
sys.dbms_aq.register(reginfolist, 1);

END;

пятница, 26 марта 2010 г.

Про электронные книги.

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

Итак, плюсы:
- Не надо читать с монитора, экран е-книги по визуальному восприятию практически идентичен бумаге. Твои глаза скажут вам спасибо.
- Не надо хранить тонны бумаги в виде физической библиотеки. Сэкономь жизненное пространство в своём жилище.
- Читай всегда и везде. Устройства довольно компактно.
- сэкономь на покупке книг! Качай их с нета, ну или покупай их оттуда, но дешевле.

Ну и минусы.
- Само устройство стОит недёшево. За бугром - начиная с 190 УЕ за Соньку и 250 УЕ за Покетбук.
- Купить е-книгу в Эстонии непросто. Выбор практически нулевой.

Для себя сделал вывод: надо ждать. Технология на подъёме, новые устройства анонсируются каждый день. Вот и сегодня представлены новые книги от Кобо и Ритмикс. Скоро рынок захлебнётся и отреагирует снижением цен. А я - тут как тут, с деньгами в потной ладошке :)

вторник, 23 марта 2010 г.

ESB: форматирование даты и времени (xp20:format-dateTime)

Озадачился этим вопросом. Гугл нам в помощь, выдал сразу вариант решения:
ora:formatDate
Всем хороша функция, и простая, и в качестве шаблона берёт всеми любимый SimpleDateFormat из Явы. Да по закону бутерброда отказывается работать в ESB.
Дальнейшие поиски привеля меня к другому решению. Можно пользовать XPath Extension Functions :
xp20:format-dateTime(/ns0:EndDate, '[Y0001]-[M01]-[D01]' )
Работает на ура.

четверг, 4 марта 2010 г.

Скопировать XML и изменить Namespace

Встала проблема вселенского масштаба. Как перевести XML из одного нэймспэйса в другой, изменив только сам нэймспэйс?
XSLT предлагает такую возмижность:


<xsl:template match="*">
<xsl:element name="{local-name()}" namespace="http://mdm-proxy.org/">
<xsl:copy-of select="@*"/>
<xsl:apply-templates />
</xsl:element>
</xsl:template>

вторник, 23 февраля 2010 г.

Будничное

Работы навалилось море. Не смотри, что кризис. Дни летят, как минуты. Через это и записи в дневнике вести не успеваю. Однако.

Зима всё никик не успокоится. Снег сыплет сверху непереставая, холод стоит - хоть на улицу не выходи, я и не выхожу. А ещё в крыше дырка обнаружилась, и через неё снег проклятый тает и к нам в спальню через крышу просачивается. На потолке - противные пятна светло-коричневого света. Временно проблему решил детской ванной, аккуратно подставленной под шифер. Теперь периодически приходится наведываться на чердак да ванну опорожнять.

Снова хожу на греческий. Личный состав почему-то сократился, походу, не всем язык Гомера по вкусу. А может, все в Грецию улетели, практиковаться. А мне-нравится, только слова плохо учатся. Да ещё Адонис решил задать такой темп на старте, что мы поспеваем с трудом.

Между делом прочитал несколько произведений некого Олди. Оказалось, что это два мужика, взявшие себе общую фамилию. Пишут, что характерно, очень свежо, и пишут в основном фантастику. Меня же заинтересовал их "Ахейский цикл", альтернативная интерпретация греческих мифов:

Герой должен быть один и Одиссей, сын Лаэрта.
В качестве факультатива прочёл так же рассказик Она и ее мужчины о Елене Прекрасной.

Очень сочно написано, со вкусом и фантазией. Одно непонятно: имеют ли такие интерпретации под собой фундамент, или же это - чисто фантазия авторов?

Задумался о покупке электронной книги. Пока анализирую варианты:
PockenBook 360 от украинских умельцев за 300 УЕ
или sony prs-300 от именитой фирмы за 200 УЕ.