はてなブックマークを効率的に利用するためのiGoogleガジェットを作成しました。

はてなブックマークの人気エントリー・注目エントリー・新着エントリーをタブごとに取得します。さらに、URLを設定すると、そのURL全体のブックマークカウンターも表示されるので、ブログパーツとして利用できます。URLは「http://」から正確に入力してください。
使用方法は2つあります。
一つは、iGoogleでの利用を前提にした一般的な使い方です。はてなブックマークの人気エントリー・注目エントリー・新着エントリーを取得します。
» 全文を読む
PHPでは、date()やstrtotime()など、日付を取得・加工する関数が多く用意されています。
- date() : ローカルの日付/時刻を書式化する。
- strtotime() : 英文形式の日付を Unix タイムスタンプに変換する。
- mktime() : 日付を Unix のタイムスタンプとして取得する。
- checkdate() : グレグリオ歴の日付/時刻の妥当性を確認します。
けれども、PHPで用意されている関数だけでは、税金の申告期限(法定納期限)など、意図した日付を出力できない場合があります。(このことは「
加算税・延滞税の計算式」を作成中に気が付いた)
法人税の申告期限は決算年月日の2ヶ月後なので、例えば、決算年月日が2008年3月31日の場合には、原則的に2008年5月31日となります。これだけならば、
$ymd = "2008-03-31";
$ymd_limit = date('Y-m-d', strtotime("+2 month", strtotime($ymd)));
などと記述すればOKです。
ところが、申告期限が土日祝日の場合、休日明けの日にずれ込むというルールがあります。すなわち、決算年月日が2008年3月31日の場合、申告期限は、2008年5月31日が土曜日なので、休日明けの2008年6月2日となります。
また、決算年月日が2月28日や12月31日の場合なども、上記コードでは期待通りの結果を得ることができません。
» 全文を読む
「
DCF法の計算式」というツールを作成したのですが、肝心のDCF法に対する理解が不足していたこともあり、PHPでプログラムを組む前にお勉強をしました。と言うわけで、復習を兼ねて(具体的な思考の道筋を)備忘的に書き残しておくことにします。
まずはDCF法について確認。
DCF法(ディスカウント・キャッシュフロー法)。
収益還元法の一つで、資産価値を収益面から見る手法。将来見込まれる純収益(キャッシュフロー・現金収支)の合計額を、現在の値打ちに引き戻した(=還元した)もの。
投資期間内に得られる純収益の合計額と、投資期間終了時における見込み売却価格を基にして算出する。
これだけでは分かりにくいので、DCF法の基本式を見ることにします。
- Pv … 現在価値(*資産価値)
- r … 投資収益率(*割引率)
- n … 投資期間(*年数)
- Cf … キャッシュフロー(*純収益の年額)
- Rv … 残存価値(*投資期間終了時の見込み売却価格)
» 全文を読む
不動産や株式の資産価値をDCF法で簡易評価するツールを公開しました。
DCF法の計算式
http://ma-bank.net/...
主な特徴は以下の通り。
- 年間総収入を入力するだけで資産価値を簡易評価します。
- 投資収益率(*割引率)や投資期間の変動シミュレーションを自動計算します。
- 投資額や残存価値等を入力すると、投資損益(*NPV:正味現在価値)や収益率(*IRR:内部収益率)など、より詳細な計算結果が得られます。
- 入力単位を円・万円・億円・兆円・京円・垓円から選べます。
» 全文を読む
先週末よりma-bank.comトップページのリニューアルを行なっており、先ほどようやく作業が一段落しました。(IE6のCSS表示の調整で結構手間取りました…)
従来のトップページは、新着エントリーや事業一覧、外部リンクなどを、並列的に羅列するだけでしたが、重要度に応じて見せ方に濃淡をつけてみました。また、基本的にシンプルな作りの(殺風景な)サイトなので、これを機にアイコン画像をつけて華やかにしてみました。
» 全文を読む
「ma-bank.com」ドメインのサーバ切替(DNS情報の変更)を3月25日15時前後に実施したところ、3月27日17時前後に世界中のDNSサーバに情報が行き渡ったようです。旧サーバのアクセスログを見るとそれ以降アクセスした形跡がないので、サーバ切替に要した時間は50時間ということになります。
時間が結構かかるものだと思われるかもしれませんが、実を言うと、ma-bank.comへのアクセスの99%は、3月26日から新サーバへ切り替わっていました。1%のアクセスだけが、ズルズルと旧サーバへアクセスを繰り返していたのです。ちなみに、3月26日から3月27日にかけて旧サーバにアクセスしていたのは、asianetcom.netのクローラーだけです。(笑)
ところで、サーバ移転を機に、サイトの文字コードをEUC-JP(ujis)からUTF-8に変更しました。これはMySQL4.0からMySQL5へデータ移行する際に発生した文字コード関係の問題のためです。いろいろ試してみましたが、EUC-JPだと、何かしら不都合が生じてしまうのです。
と言うわけで、最近プログラムのほとんどをUTF-8で記述していることもあって、(大胆にも)文字コードを変更することにしました。
以下、「
Nucleus」というCMSのサーバ移転時に実施した作業を備忘的に残しておきます。
» 全文を読む
複数のフィード(AtomやRSS)をタブでまとめて購読するiGoogleガジェットです。主な特徴は以下の通り。
- 原則的に登録できるフィード数は無制限。
- 各タブの名前や各フィードのURLを変更可能。
- 登録フィード画面(「+」タブ)において、タブの位置をドラック&ドロップで変更可能。
- Opmlのインポート(エクスポート)に対応しているので複数のフィードを一括登録可能。
- ニュース・パックを使って複数のニュースフィードを一括登録可能。
- フィードの要約の表示方法は6種類から選択可能。
- 表示するエントリー数を1から20の間で選択可能。
- ガジェットのタイトルを変更可能。
» 全文を読む
「
FmTube(インターネット動画ラジオ)の公開」で言及した通り、iGoogle用ガジェット「FmTube」(インターネット動画ラジオ)を作成しました。
» 全文を読む
「
サイトリニューアルに伴なうMySQLの最適化」の続き。
サイトをリニューアル作業で、最後に残ったのがサイト内検索の取り扱いです。MySQLのLIKE文を使うので、どうしてもスピードが落ちますし、サーバへの負担がかかります。
と言うことで、外部のものを利用することにしました。
幸いなことに「
Google AJAX Search API」を利用したiGoogle用検索ガジェット「Google検索+」を作成していたので、それにサイト内検索機能をつけた上で、カスタマイズしたものを検索ページとすることにしました。ページ上部にある「検索窓」から検索をするか、例えば
MySQLをクリックすると、サイト内検索ページが開きます。
以下がiGoole用検索ガジェット「Google検索+」のサンプルです。(※「Google」「JavaScript」「PHP」などで検索してみてください)
» 全文を読む
ここ数日間に渡り行なっていたサイトリニューアル作業ですが、ようやくほぼ完了しました。外観をシンプルなものにした上で、サイト全体の安定化・高速化をはかりました。
当サイトは「Nucleus」というCMSで構築していますが、利便性を高めるために何個かプラグインを導入しています。それら一つ一つについて見直しを行なうと同時に、当サイトに特化したプラグインを新たに作成しました。
そもそもリニューアルをしようと思ったのは、NP_AnalyzeというNucleusのアクセス解析プラグインが不安定であり、また、MySQLの接続エラーが頻発していたためです。要するに当サイトで利用しているプログラムに問題がある可能性があったのです。
このNP_Analyzeは、PHPもMySQLもよく分っていない時期に自作したものですが、久しぶりにソースを眺めたところ、あまりの読みにくさに頭が痛くなりました。この頃は、PHPのClassがよく分っていなかったし、MySQLをEXPLAINでチューニングすることも知らなかったから、見通しのいい安定したプログラムを書くことは難しかったとは言え、ヒドい出来としか言いようがありません。乱暴な言い方をすると、「取り合えず動けばいい」という感じでしょうか。
と言う訳で、リニューアル作業は、NP_Analyzeの大幅な書換えから始めることにしましたが、これがかなり大変でした。。。
» 全文を読む
「
PHPとMySQLのセキュリティー対策関数」「
PHPエスケープ関数の比較一覧」の続き。
PHPとMySQLのセキュリティー対策関数を使うと、配列に対しても一気に変換できますが、HTML表示やMySQLのquery発行の直前に適用できない可能性もあります。そうなると、間違えが起こりやすくなるので、セキュリティー対策としては十分でないと思われます。
そこで配列を一気に変換した場合、その配列の各要素がセキュリティー対策済みであることを、明示的に継承する手法を提案します。具体的には「
PHPエスケープ関数の比較一覧」の後半部分で言及した、ユーザー定義関数(function)の名前付けのように行ないます。
» 全文を読む
「
PHPとMySQLのセキュリティー対策関数」の続き。
クロスサイトスクリプティング対策関数のhtmlspecialchars()と、SQLインジェクション対策関数のaddslashes()、mysql_real_escape_string()について比較一覧表を作成してみました。黄色い部分が変換できない文字です。
» 全文を読む
最近必要に迫られて、昔書いたプログラムの見直し作業をやっています。MySQLの処理の高速化がメインなのですが、それと並行してセキュリティチェックも行なっています。
PHPでは、クロスサイトスクリプティング対策には「htmlspecialchars()」を、MySQLのSQLインジェクション対策には「mysql_real_escape_string()」を使って、変数を安全なものにするのですが、これが美しくないし、様々な不都合が生じる場合があります。
と言う訳で、セキュリティ対策用に汎用の関数を作成してみました。ポイントは以下の通り。
- 配列ごと一気に変換できる。
- クラス内でも使える。
- get_magic_quotes_gpc()の設定に関係なく使える。
- PHP4.3未満でも使える。
- 覚えやすい関数名なので手軽に使える。
» 全文を読む
FmTubeというマッシュアップサイトを公開しました。
好みのジャンル(アーティスト)に関連した音楽を自動選曲して流すネット動画ラジオです。
YouTubeのミュージックビデオを
Last.fmのように連続再生します。
FmTube
http://jun1969x.mashupedia.jp/fmtube/?lan=ja
操作は簡単。チャンネルかアーティストを選択するだけです。後は関連するビデオがラジオのように連続して流れます。

» 全文を読む
※
EDIUNETの開発状況。
YouTubeを利用して、EDIUNETの解説ビデオを公開してみました。(再生ボタンをクリックする再生されます)
» 全文を読む
※
EDIUNETの開発状況。
企業価値と財務分析でランキング上位の上場会社を総合評価。毎日11:30頃から前場の結果をブログ形式で速報中。ランキングは値上り率・値下り率・時価総額の3種類。RSSや携帯向けページも。
◆ マルチオートサーチ機能の追加
EDIUNETレポートにマルチオートサーチ機能を追加。企業について複数のWeb検索結果を自動的に取得。「Google AJAX Search API」を利用。
(※下の図は
キヤノンのEDIUNETレポートを開いて「イメージ」を選択したところ。)

» 全文を読む
※
EDIUNETの開発状況。
◆ 企業価値算定機能の改善
算定基準を「1株あたり」から「総額」に変更。企業価値の算定方法を1つ追加(※FCF還元法を、FCF還元法と簡易FCF還元法の2つに分けた)。
◆ EDIUNETスコア機能の改善
直感的に状況を把握できるように、直近期のスコア(及び前期比)だけをシンプル表示。

» 全文を読む
多次元配列の特定要素に対して何らかの操作をする場合、PHPでは
array_walk_recursive()がお勧めです。今までarray_walk()やarray_map()については、再帰処理が面倒なこともあってあまり使っていなかったのですが、これはお手軽です。
» 全文を読む
PHPでは多次元配列の要素でソートをする場合、例えばusortとcreate_functionを使って以下のように書きます。
<?php
$list = array(
array("no"=>3, "cat"=>5, "body"=>"リンゴ"),
array("no"=>2, "cat"=>4, "body"=>"みかん"),
array("no"=>4, "cat"=>5, "body"=>"ナシ"),
array("no"=>6, "cat"=>3, "body"=>"バナナ"),
array("no"=>1, "cat"=>4, "body"=>"オレンジ")
);
usort($list, create_function('$a, $b', 'return $a["cat"]-$b["cat"];'));
print_r("<pre>");
print_r($list);
print_r("</pre>");
?>
» 全文を読む
前へ [P.1/3]
次へ [57件中 1-20件目] 最初 /
最後