2012年10月26日金曜日

gnucash と yahoo finance quote その2

Yahoo Finance のページングが修正されたことで、今回のスクリプトも合わせて修正を行いました。50件以上の検索結果が存在するとページングされる仕様となっており、ページングのリンクの存在有無で判断することができそうです。

2012年10月24日水曜日

gnucash と yahoo finance quote

gnucashで株式のデータ取り込む際に今まで こちらのperlスクリプトを利用させていただいていたのですが、作者の方のgithubのサイトにもあるように Yahoo Financeの仕様が変更されたため、株価および投資信託の基準価格が取得できなくなって実は困ってました。
個人的な時間があったのと、折角ソースを公開して頂いているので早速修正に着手してみました。
githubから該当のプロジェクトをfork して何年ぶりかのperl コーディング。オブジェクト指向の記述に戸惑ったものの、perl のHTML scrap処理を調査しつつ修正。その時に参考にさせていただいたサイトは下記の通り。
対象となるページは
のように該当の証券コードをQueryStringとして付与すれば取得可能となっており、Scrape対象となる箇所のキーとなるhtml tag を検討すれば対応可能と考えていましたが、いくつか問題が発生しました。
  • Yahoo Financeでの証券コード検索は「部分一致」検索
証券コードを指定しても「部分一致」で検索されるため、証券コードを可能な限り特定する場合には「証券コード.取引所コードの頭文字(?名称不明。T:東証、O:大証、Q:JASDAQの存在を確認済み)」で指定できるようです。しかしどの証券コードがどの取引所に上場しているかの判断がつきません。存在しないコードは結果が戻らないので3種類全てでリクエストすれば解決できるかと思いましたが、
それぞれの証券コードに対して".T", ".O", ".Q" を付与した証券コードで実行した所、複数の証券所に上場している会社(例は任天堂。大阪と東京で扱われている。あまり良くわからないけど 「教えて! goo」をリンク)  が存在し、それぞれの証券コードに対するメインの証券所の確認は不可能と判断し、この方法も使えないと判断しました。


2012年6月10日日曜日

systemctl 新規登録

fedora16で利用してなかったので気が付かなかったのですが、deamon系の管理が変わったので新規登録できるまでかなり時間がかかってしまった。早速サンプルを。下記は新管理系ツール systemctl で jiraを自動起動する設定ファイルです。
 [Unit]
Description=Jira Bug Tracking System

[Service]
Type=simple
ExecStart=/opt/jira/bin/startup.sh
ExecStop=/opt/jira/bin/shutdown.sh
RemainAfterExit=yes
StandardOutput=syslog

[Install]
WantedBy=graphical.target
 全くSHELLスクリプトとは異なるのですが、出来た後は新管理系ツールのほうが楽になったように思います。

このファイルを
/usr/lib/systemd/system/jira.service
として保存し、rootユーザーで
systemctl enable jira.service
と登録します。すると
ln -s '/usr/lib/systemd/system/jira.service' '/etc/systemd/system/graphical.target.wants/jira.service
 と設定ファイルで[Install]セクションの"graphical.target"の所定ディレクトリへリンクが作成されます。これでPC起動時にjiraが自動起動出来るようになりました。

要注意ポイントは [Service] セクションの RemainAfterExit を yes に設定すること。そうしないと、設定した起動処理実施後、一緒に終了させられてしまいます。大抵、後から追加する設定は yes になりそうな気がしますけど。

ちなみに、マニュアル起動する時は
systemctl start jira.service
となるので以前のservice とはサービス名とコントロールコマンドの順番が逆になるのでなんかややこしいです。fedora17ではserviceコマンドも互換性のために残っています。chkconfig は適応範囲が限定されているようなので、乗り換えてしまったほうが良さそうです。

そのうち他のディストリビューションでもsystemctlに統合されていくのでしょうか?
参考ページ

2012年2月19日日曜日

JIRA インストール

自分でコーディングする際にもバグトラッキングシステムがあったほうが便利なことが多いのですが、メンバーが自分だけだと、だんだん使うのが面倒くさくて入力手続きを守らなくなって使わなくなっていく…ということが多かったのですが、今日思い立ってJIRAをインストールして見ました。

オープンソースでネット上にアクセスすることが出来れば「無料」で使えるそうです。
いずれにしても使ってみないと判断もできないのでこちらからダウンロード。

ただし、JDK7 ではガジェットがうまく動きません。
logs/catalina.outを眺めていると、
********************************************************************************************************************************************************************************************************
The following plugins are required by JIRA, but have not been started: Gadget Directory Plugin (com.atlassian.gadgets.directory), Atlassian JIRA - Plugins - Project Config Plugin (com.atlassian.jira.jira-project-config-plugin), Atlassian OAuth Admin Plugin (com.atlassian.oauth.admin), Embedded Gadgets Plugin (com.atlassian.gadgets.embedded), Atlassian JIRA - Plugins - Shared Application Access Layer (SAL) Plugin (com.atlassian.sal.jira), Gadget Dashboard Plugin (com.atlassian.gadgets.dashboard), Atlassian JIRA - Plugins - Look And Feel Logo Upload Plugin (com.atlassian.jira.lookandfeel), Atlassian JIRA - Plugins - Gadgets Plugin (com.atlassian.jira.gadgets), Atlassian REST - Module Types (com.atlassian.plugins.rest.atlassian-rest-module), Gadget Spec Publisher Plugin (com.atlassian.gadgets.publisher), Atlassian JIRA - Plugins - REST Plugin (com.atlassian.jira.rest), Atlassian OAuth Service Provider Plugin (com.atlassian.oauth.serviceprovider), Opensocial Plugin (com.atlassian.gadgets.opensocial)
********************************************************************************************************************************************************************************************************
こんなエラーが出て、WEBからのアクセスも


こんなエラーになります。

仕方が無いのでJDK6を改めてダウンロードします。私のマシン(fedora)では ではrpm でJDK7がインストールしてあり、JDK6のrpmをインストールすると「新しいバージョンが既に存在している」とエラーになってしまうので、ここは jdk-6u31-linux-i586.binのほうを/usr/java に解凍してリンクも作っておきました。
prompt$ pwd
prompt$ /usr/java
prompt$ ln -s jdk1.6.0_31  jdk6
 JIRAにはHSQLが付属しているので使い勝手をみるだけであれば、別のRDBを準備しなくても利用できそうですが、mysql を利用するように変更します。
mysql> create database jiradb;
mysql> create user jira;
mysql> grant all privileges on jiradb.* to 'jira'@'localhost' identified by 'password';
 設定ファイルとしては dbconfig.xml というファイル名でjira.homeに指定したディレクトリに保管するようです。

無事に稼働確認できたら、
こちらからオープンソースであることを示す申請をしておきます。

  • The project is licensed under a license approved by the Open Source Initiative.
  • The project source code is available for download.
  • Your open source project has a publicly accessible website.
  • Atlassian's software is accessible to the public.
  • How to apply for an open source license for any Atlassian software:
という但し書きがありますので、私の場合はgithub やらサービスを稼働しているURLを記入しておきました。問題なく認められたら晴れて「無料」で利用できることになりそうです。

参考にさせていただいたサイト