воскресенье, 9 августа 2009 г.
Оптимизация себя: избавляемся от ненужных преобразований
Обнаружил, что не использую в обычной жизни то, чему учат еще в школе. Упрощением математических выражений мы все занимались. Но почему-то применить это к иностранным языкам мне не приходило в голову. Я читаю много материалов на английском, притом с пониманием проблем не возникает. А проблема как раз в том, что я преобразую исходный английский текст в его смысл, но не напрямую, а сначала - в его смысл на русском. Я попробовал не преобразовывать текст к русскому, а понимать его именно исходным английским текстом. Оказалось, это вполне возможно, и главное - сильно быстрее, чем пытаться переводить. Подозреваю, что сразу такой переход и невозможен, но он необходим для повышения эффективности впоследствии. Следующий этап, научиться таки писать связанные тексты, ну и разговаривать может быть рано или поздно я смогу. В первых планах, попробовать перевести на международный язык номер один статьи про gnucash, что и неудивительно - надо расширять аудиторию.
воскресенье, 2 августа 2009 г.
Дело GnuCash живет и побеждает - модуль Finance::Quote для ММВБ (Micex)
Именно так можно охарактеризовать мое настроение после письма Андрея, с просьбой опубликовать разработанный им модуль получения котировок ММВБ для GnuCash.
Публикую: http://atsave.narod.ru/micex-pm/index.html.
Подозреваю, держателей ценных бумаг будет больше, чем держателей обезличенных металлических счетов, и если они не интрадеят, такой модуль позволит им учитывать свои вложения в замечательной программе GnuCash значительно проще.
Поскольку обнаружилось, что у народа возникают вопросы по публикации своих модулей на CPAN, в ближайшее время постараюсь вспомнить свой опыт регистрации и изложить его в виде статьи.
Даешь больше модулей для GnuCash!
З.Ы. 21.01.2011 - поменялась ссылка на сайт автора, обновил. Попробую опубликовать на CPAN для облегчения инсталляции, тем более, что мой родной модуль что-то в последнее время поломался...
Публикую: http://atsave.narod.ru/micex-pm/index.html.
Подозреваю, держателей ценных бумаг будет больше, чем держателей обезличенных металлических счетов, и если они не интрадеят, такой модуль позволит им учитывать свои вложения в замечательной программе GnuCash значительно проще.
Поскольку обнаружилось, что у народа возникают вопросы по публикации своих модулей на CPAN, в ближайшее время постараюсь вспомнить свой опыт регистрации и изложить его в виде статьи.
Даешь больше модулей для GnuCash!
З.Ы. 21.01.2011 - поменялась ссылка на сайт автора, обновил. Попробую опубликовать на CPAN для облегчения инсталляции, тем более, что мой родной модуль что-то в последнее время поломался...
понедельник, 27 июля 2009 г.
Юпитер трясет
19 июля нашего газового гиганта поразило нечто. Что произвело эффект покруче тунгусского метеорита. И даже на фотографиях от 24 числа отчетливо видно следы погрома. И никто об этом ничего не знал. А ведь должны были знать. Если мы об этом ничего не знаем, то где гарантия, что завтра на нас не упадет тоже такое тельце, размером с несколько футбольных полей?
Но уже сегодня новость с трудом находится на новостных сайтах. Что-то мне подсказывает, что совершенно зря, прозевать такое, это гораздо круче, чем допустить новые атаки террористов.
Мне кажется, что как сейчас мы ставим камеры в подъездах, чтобы следить за хулиганами, так и в космосе должно быть развитое око Большого Брата, а то болтается один дохлый Хаббл, который только через 5 дней успевает посмотреть на вселенскую катастрофу, и что с этого толку? Хотя, возможно, и не так уж плохо, если эту лавочку так прикроют :)
Но уже сегодня новость с трудом находится на новостных сайтах. Что-то мне подсказывает, что совершенно зря, прозевать такое, это гораздо круче, чем допустить новые атаки террористов.
Мне кажется, что как сейчас мы ставим камеры в подъездах, чтобы следить за хулиганами, так и в космосе должно быть развитое око Большого Брата, а то болтается один дохлый Хаббл, который только через 5 дней успевает посмотреть на вселенскую катастрофу, и что с этого толку? Хотя, возможно, и не так уж плохо, если эту лавочку так прикроют :)
воскресенье, 12 июля 2009 г.
Зло
Командировка, ремонт, уфф...
Просмотрел сегодня плафоновый мафон, подумалось, что аум синрике не туда пустило свой газ. Не в смысле убийства, но просто, с эстетической точки зрения, морг заваленный стразами - это круто :)
Просмотрел сегодня плафоновый мафон, подумалось, что аум синрике не туда пустило свой газ. Не в смысле убийства, но просто, с эстетической точки зрения, морг заваленный стразами - это круто :)
понедельник, 25 мая 2009 г.
Я - фанат Google
Да, я активно пользуюсь всеми сервисами Google. Можно сказать, что в Google мне нравится все. Хочу там работать. Google - возьми меня к себе на работу, хоть внештатником. Жду не дождусь Chrome во всех своих дистрибутивах. Судя по всему, и меня заметили, так как выросли размеры рекламы на моем скромном ресурсе, а в реальный почтовый ящичек пришло даже целое рекламное письмо. Но я не отчаиваюсь, и жду, что в один прекрасный день Google заметит меня и сделает предложение, от которого невозможно отказаться.
P.S. У блоггеров почему-то принято в начале каждого поста ни о чем раз в 6 месяцев писать про свою страшную занятость, про то, что впредь они будут писать и писать, и т.п. и т.д. Люди просто думают, что на них свет клином сошелся, какая разница, пишете, не пишете, если приходится себя заставлять, наверно не надо. По мне, так иногда хочется писать, иногда нет. И все. Поэтому никакого расписания постов нет, может быть как сегодня, а может - и раз в год/другой :)
P.S. У блоггеров почему-то принято в начале каждого поста ни о чем раз в 6 месяцев писать про свою страшную занятость, про то, что впредь они будут писать и писать, и т.п. и т.д. Люди просто думают, что на них свет клином сошелся, какая разница, пишете, не пишете, если приходится себя заставлять, наверно не надо. По мне, так иногда хочется писать, иногда нет. И все. Поэтому никакого расписания постов нет, может быть как сегодня, а может - и раз в год/другой :)
Серые мыши, сидите потише
Милиция в последнее время радует нас заголовками:
- майор устроил бойню в супермаркете
- милиционер отрезал голову за 60 рублей
- милиционер сбил насмерть беременную женщину и скрылся с места проишествия
- пьяные милиционеры пытали и пытались утопить мужчину "потому что лысый"
- омоновец, угрожая оружием, угнал машину на мкад
Было и еще, всего не упомнишь. Вывод только один: гражданин должен соблюдать закон, а если он его не соблюдает, его место - в тюрьме, либо, за пределами общества. Если же те, кто закон соблюдать должны по определению, его в особо циничной форме нарушают, значит они не могут считаться его представителями. Собственно. всегда всю свою жизнь боюсь милиции больше, чем преступников, именно по той причине, что вполне законопослушен. Эти деятели считают, что им закон преступать просто таки на роду написано, поэтому если видишь, что кто-то делает что-то непотребное - 90%, что это либо миллиционер, либо, лицо с милицией аффилированое ("да я сейчас буду звонить своему другу-"грушнику" (фсбшнику, фсошнику, по обстоятельствам)).
- майор устроил бойню в супермаркете
- милиционер отрезал голову за 60 рублей
- милиционер сбил насмерть беременную женщину и скрылся с места проишествия
- пьяные милиционеры пытали и пытались утопить мужчину "потому что лысый"
- омоновец, угрожая оружием, угнал машину на мкад
Было и еще, всего не упомнишь. Вывод только один: гражданин должен соблюдать закон, а если он его не соблюдает, его место - в тюрьме, либо, за пределами общества. Если же те, кто закон соблюдать должны по определению, его в особо циничной форме нарушают, значит они не могут считаться его представителями. Собственно. всегда всю свою жизнь боюсь милиции больше, чем преступников, именно по той причине, что вполне законопослушен. Эти деятели считают, что им закон преступать просто таки на роду написано, поэтому если видишь, что кто-то делает что-то непотребное - 90%, что это либо миллиционер, либо, лицо с милицией аффилированое ("да я сейчас буду звонить своему другу-"грушнику" (фсбшнику, фсошнику, по обстоятельствам)).
GnuCash - лечим получение котировок валют.
С недавних пор (где-то с 12 мая) мой любимый gnucash перестал получать котировки валют. Как всегда программный отказ удачно совпал с сильными колебаниями на валютном рынке, но мои активы вполне себе спокойно поживали, что меня удивило, но с некоторым запозданием.
Все это конечно ужасно, но поправимо. Меня всегда удивляли люди, которые ругали опенсурс за ошибки. Увидел ошибку - докажи, что сам чего-то стоишь: поправь ее. Ну или баг-репорт отправь.
Итак, как вылечить gnucash? Ответ как всегда в модуле Finance::Quote. Надо его немного поправить.
Ищем, куда спрятался Quote.pm в нашей локальной инсталяции (мы же не будем править то, что ставим дистрибутивом):
Правим его. Тут особых подробностей не напишу, кроме того, что освоил debug perl под emacs (M+x perldb). Сами авторы дают резервный вариант для получения котировок валют, но почему-то, чтобы им воспользоваться, приходится попрограммировать. Я для вас поставлю свой вариант исправления, который работает у меня. В upstream пока погожу слать, подожду версии 1.17 Finance::Quote. Ну а если вдруг кому пригодится, то смотрите, как я поправил.
Ищем оригинал (каюсь, не сделал бэкапа, поэтому сравниваем с тем, что идет в дистрибутиве):
Сравниваем:
Данное решение считаю костылем, жду 1.17 с исправлением досадной ошибочки, или 1.16.1. Надеюсь, костыль не будет передаваться из рук в руки, и пригодится только мне :)
Все это конечно ужасно, но поправимо. Меня всегда удивляли люди, которые ругали опенсурс за ошибки. Увидел ошибку - докажи, что сам чего-то стоишь: поправь ее. Ну или баг-репорт отправь.
Итак, как вылечить gnucash? Ответ как всегда в модуле Finance::Quote. Надо его немного поправить.
Ищем, куда спрятался Quote.pm в нашей локальной инсталяции (мы же не будем править то, что ставим дистрибутивом):
kilork@phoenix ~ $ find ~/perl -name Quote.pm
/home/kilork/perl/lib64/perl5/site_perl/5.8.8/Finance/Quote.pm
Правим его. Тут особых подробностей не напишу, кроме того, что освоил debug perl под emacs (M+x perldb). Сами авторы дают резервный вариант для получения котировок валют, но почему-то, чтобы им воспользоваться, приходится попрограммировать. Я для вас поставлю свой вариант исправления, который работает у меня. В upstream пока погожу слать, подожду версии 1.17 Finance::Quote. Ну а если вдруг кому пригодится, то смотрите, как я поправил.
Ищем оригинал (каюсь, не сделал бэкапа, поэтому сравниваем с тем, что идет в дистрибутиве):
phoenix kilork # equery f Finance-Quote | grep Quote.pm
/usr/lib64/perl5/vendor_perl/5.8.8/Finance/Quote.pm
Сравниваем:
kilork@phoenix ~ $ diff -u {/usr/lib64/perl5/vendor,/home/kilork/perl/lib64/perl5/site}_perl/5.8.8/Finance/Quote.pm
--- /usr/lib64/perl5/vendor_perl/5.8.8/Finance/Quote.pm 2009-05-23 23:26:49.000000000 +0400
+++ /home/kilork/perl/lib64/perl5/site_perl/5.8.8/Finance/Quote.pm 2009-05-25 00:56:28.000000000 +0400
@@ -42,9 +42,9 @@
$VERSION $TIMEOUT %MODULES %METHODS $AUTOLOAD
$YAHOO_CURRENCY_URL $USE_EXPERIMENTAL_UA/;
-$YAHOO_CURRENCY_URL = "http://uk.finance.yahoo.com/currency/convert?amt=1&submit=Convert&";
+#$YAHOO_CURRENCY_URL = "http://uk.finance.yahoo.com/currency/convert?amt=1&submit=Convert&";
# If the above URL ever fails, try rewriting this module to use the URL below.
-# $YAHOO_CURRENCY_URL = "http://uk.finance.yahoo.com/q?s=USDCAD%3DX";
+$YAHOO_CURRENCY_URL = "http://uk.finance.yahoo.com/q?s=";# USDCAD%3DX";
@ISA = qw/Exporter/;
@EXPORT = ();
@@ -241,16 +241,11 @@
my $ua = $this->user_agent;
- my $data = $ua->request(GET "${YAHOO_CURRENCY_URL}from=$from&to=$to")->content;
- my $te = HTML::TableExtract->new( headers => ['Symbol', 'Bid', 'Ask'] );
- $te->parse(decode_utf8($data)); # The web page returns utf8 content which gives
- # a warning when parsing $data in HTML::Parser
-
- # Make sure there's a table to parse.
- return undef unless ($te->tables);
-
- my $row = ($te->rows())[0];
- my ($exchange_rate) = $$row[1];
+ my $data = $ua->request(GET "${YAHOO_CURRENCY_URL}$from${to}%3DX")->content;
+ if($data !~ /Bid:.+>(\d+.\d+)<.+Ask:/g) {
+ return undef;
+ }
+ my $exchange_rate = $1;
$exchange_rate =~ s/,// ; # solve a bug when conversion rate
# involves thousands. yahoo inserts
# a comma when thousands occur
Данное решение считаю костылем, жду 1.17 с исправлением досадной ошибочки, или 1.16.1. Надеюсь, костыль не будет передаваться из рук в руки, и пригодится только мне :)
Подписаться на:
Сообщения (Atom)