2024年9月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
無料ブログはココログ

 

« 2010年6月 | トップページ | 2010年8月 »

2010年7月31日 (土)

エコポイントをJCBギフトカードに交換してきた

今年4月10日にTOSHIBA REGZA 32RX1を購入した時、エコポイントをJCBギフトカード取得ということでヨドバシカメラ代行してもらって、早4か月弱。交換できるよってハガキが来た。
購入時のエコポイント代行書類とか持って行ったけど、実際必要なのはハガキと身分を証明できるもの(運転免許証とか)で良かったってさ!

んで貰った15,000円分のJCBギフトカードは、どうせアブク銭だし低周波治療器あたり買ってみようかと思っていたのだが・・・。試してみると気持ち悪い。
なんて言い表していいのかわからんのだが、軽く漏電しているものを触ったことがある人しか分からんと思うけど、変な何かがぞわぞわ来て手とか動かないけれど動かされているという・・・。何言ってんだオイラ?
気持ち悪い何かがあるというかイヤな感じというか・・・。伝わらないなこりゃ。

ちなみにヨドバシカメラのJCBギフトカードは、期限なし。15%ポイント還元になるとのこと。
上大岡ヨドバシカメラの8階、健康器具や照明の置いてあるあたりにカウンタがあります。

・・・
これを済ませたあと昨日、当選した出光キャッシュプリカを、金券ショップに売りに行ったのだけれど上大岡では、冨士屋さんくらいしか見当たらずそこでは取り扱っていないとのこと。
あとは金沢八景のダイエーにあったとか、追浜ヨコサンにあったかなーと行ってみたけど、無い・・・。無くなっている?

後、思い浮かぶのは横浜駅のほうまで行くか、戸塚modiにあるらしいのでそこに行ってみるか・・・。杉田にもあったかな。
ま、ダメだったら誰かにあげちゃおう。どうせ使わないんだから期限が切れるより、誰かの心証を良くするのが手だよな。
そういえば、バンダイナムコホールディングスの株主優待のイタリアン・トマトの金券1,000円分も残っているんだ。これは横浜に出た時に使ってみよう。

それはともかく、今日買ってきた本。
(1)ゲーマガ 2010年9月号
欲しいと思ったゲームは、PSP版「エースコンバットX2」がやっと8月26日発売だって。当分、初音ミク Project DIVA 2ndでOKと思っていたんじゃがの。

ゲーマガ 2010年 09月号 [雑誌] Book ゲーマガ 2010年 09月号 [雑誌]

販売元:ソフトバンククリエイティブ
発売日:2010/07/30
Amazon.co.jpで詳細を確認する

今回のオマケに初音ミク Project DIVA 2ndのリバーシブル下敷き。ま、いいか。
今月(?)の増刊号は、増刷されて値が落ち着いたので一応Amazonで購入しておく。

(2)年間日本SF傑作選 虚構機関
(3)年間日本SF傑作選 超弦領域
手にとってちょっと見てみたら(読むほどしっかり字を追っていない)、ヨサゲな直感が走ったので購入。たまには日本SFも読んでおかないとダメかなーって直感が。

虚構機関―年刊日本SF傑作選 (創元SF文庫) Book 虚構機関―年刊日本SF傑作選 (創元SF文庫)

販売元:東京創元社
Amazon.co.jpで詳細を確認する

超弦領域 年刊日本SF傑作選 (創元SF文庫) Book 超弦領域 年刊日本SF傑作選 (創元SF文庫)

販売元:東京創元社
Amazon.co.jpで詳細を確認する

なんか当選したって

自動車保険は、インターネットから三井ダイレクト損保に入っているのだが、なんか荷物が届いていた。
保険証にしては、だいぶ前に入ったのでなんで今ごろと思ったり、クロネコヤマトのメール便で来るのは変だろと思って開けてみたら、出光ぴあカードキャッシュプリカ「ギフトカード」とかいうものが当選したとのことで送ってくださったそうな。
一万円分のクレジットカード風の商品券(?)であった。

でもね・・・オイラ、出光に行かないもの。ガソリンだって2,3年前のものがまだ入っているもの。
金券ショップで売れないかな・・・。
明日、エコポイントの引き換えに上大岡ヨドバシカメラに行くからついでに・・・、って上大岡の金券ショップってどこにあるんだろう?

2010年7月30日 (金)

今日届いたゲーム

なんか論文指導員として夏休みにも出なくちゃいけないような感じー。
口を酸っぱくして早くやれと言い続けたのに全然やらなくて、今になってどうしようもないことになってしまって・・・。
なんなんだよ!夏休みの宿題をやっていない小学生かよ!!

(1)初音ミク Project DIVA 2nd
時間が無いのでチュートリアルとEASY2曲(ロミオとシンデレラ、愛言葉)をやってみた。
なるほどなるほど、CLEARしたけどパーフェクトにならねー。
ロミオとシンデレラは変拍子っていうんだっけ?半拍のタイミングがつかめなくてSADになったり・・・。
でも、矢印(方向キーとボタンの同時押し)やボタン長押しは、思ったより難しくないや。EASYだから?

結構、前作で足りないと感じたインターフェイスが改善されているみたい。ボタンだけじゃなくて方向キーもボタンに対応していたりするので連打系はありがたいかも。
CLEARしたものはちゃんとCLEARって出るし、ポイントで購入するアイテムがあって収拾欲を刺激したり、EXTRAなどダウンロードするものもあったりしてイイね。
前作のセーブデータを引き継ぐことによって得点があったり。
あと、エディット曲は、コンバートすることによって2ndでも使えます。(別ファイルとして保存されます)

初音ミク -Project DIVA- 2nd (特典なし) Video Games 初音ミク -Project DIVA- 2nd (特典なし)

販売元:セガ
発売日:2010/07/29
Amazon.co.jpで詳細を確認する

やっぱりなかなかの良作。
今のところ、やる時間が無いのが残念。
情報処理技術者試験が終わったらガッツリやろう。それまでは細々とやってく。(どっちにしろ遊ぶんじゃん)

ちなみにAmazonで購入したら「ねんどいろ ぷらす」ってストラップ風の小さいフィギアが付いてきたよ。出来はまあまあいいかもね。

2010年7月29日 (木)

今日届いた本

電池切れ。眠くて仕方が無い。
夏バテだったけど、麦茶をがぶ飲みしたおかげで回復したような気がする。
鬱だったのかもしれないけど。

(1)太陽神の司祭 上
(2)太陽神の司祭 下

太陽神の司祭 上 (ヴァルデマールの嵐1) (創元推理文庫) Book 太陽神の司祭 上 (ヴァルデマールの嵐1) (創元推理文庫)

著者:マーセデス・ラッキー
販売元:東京創元社
Amazon.co.jpで詳細を確認する

太陽神の司祭 下 (ヴァルデマールの嵐1) (創元推理文庫) Book 太陽神の司祭 下 (ヴァルデマールの嵐1) (創元推理文庫)

著者:マーセデス・ラッキー
販売元:東京創元社
Amazon.co.jpで詳細を確認する

「盗人の報復 ヴァルデマールの絆」には太陽神の司祭から<使者>になったアルベリッヒが出てくるけど、あまり太陽神についてはこれまでのシリーズで触れられていない(よな?)。
今回のシリーズで明らかになるのかしらん。

2010年7月28日 (水)

株:現物売り約定

前回、現物買いを設定したまま放置していて、変な値段で買いが約定してしまったOBARA。
それを元値+手数料くらいは回収しようと、932円で売りに出してました。
ところが、あれよあれよという間に下がる下がる。
900円を割ったときにはどうしようかと、絶望のズンドコにいました。

でも、今日はそこそこ回復して、932円の売りの設定が初値938円だったので、予定していたより6円×100株分プラスとなりました。よかったよかった。
今回はOBARAを938円で100株を売り約定できました。
今日の値動きは、初値938円、終値934円、高値947円、安値933円。

現在の内訳は
・OBARA(6877):100株 損益-13,200円
バンナムHD(7832):100株 損益-24,200円
・タカラトミー(7867):200株 損益 -12,400円
・日本システムディベロップメント(9759):100株 損益-32,700円

現状、含み損益-82,500円(-16.76%)となりました。
何だろう、政局不安とか国際情勢とかそんな感じで値下がりしまくってるんですけど!
もう、当分様子見で行こう・・・。

2010年7月25日 (日)

ニコニコ動画検索支援ツール「和魂」 修正αバージョンNo.5

長らく放置していました和魂を現在のニコ動に対応できるように修正しました。
HTMLの構成とか変わってしまって、検索画面の情報とか動画ページの情報が取れなくなったので、そこら辺を修正しました。
タグ名が大文字になってしまい、XMLDocumentオブジェクトが大文字小文字を区別したりしてHTML→XML変換できなくなったりしたのが敗因か と。

こちらからダウンロードできます

機能もプラスしてます。
・キーワード検索だけだったのを、タグ検索も追加。
・動画番号、動画URLの入力で動画ページ情報を取得します。
・複数入力可能としました。キーワードとか改行してテキストボックスに入れて検索すると、それぞれの検索結果を一括して取得します。
・WebブラウザのCookieを一回接続したらそのまま使用し続けるので、別のWebブラウザにしたいとき一旦終了する必要があったのを、ファイルメニューから切れるようにしました。
・ダウンロード(隠し機能)は、1つずつしかできなかったのを連続でダウンロードできるようにしました。(著作権のあるものはダウンロードしちゃだめだぜ!犯罪だからな。バカな真似をしても当方は絶対に責任を取らないから、肝に銘じておけよ)
・FireFoxのCookieを使用するためにSQLiteのDLLは特定のバージョンを必要としていたのを、動的にDLLを読み込むように変更したため、適当なバージョンでも大丈夫・・・になったはずです。

諸々の修正により、そこかしこにバグが発生している模様。
たとえば、オプションで「動画情報を取得する」にしていると、なにもできなくなるようです。「動画情報を取得しない」にしておいてね。もしくは直してください。

注:本プログラムを使用して被害・損害を受けた、または与えたとしても当方は一切責任を持ちませんのでご了承ください。また、質問 は一切受け付けませんのでご自分で勉強なさったら。まあ、オイラも勉強不足だし、直観とフィーリングでプログラムを作っているので、何が正しいかは己の心 に聞け!

USE AT YOUR OWN RISK

2010年7月24日 (土)

今日届いた本

暑くてダルイ。
食欲ない。
夏バテっぽい。
そして、仕事がアップアップになってきて、押しつぶされそうだ・・・。

(1)シドニアの騎士 3
得体のしれない敵ガウナから、前に飲み込んだ兵器である継衛とその操縦士である星白を再現したものが攻撃してきた。星白を救えなかった谷風は、その擬態した星白を採取して持ち帰る。

シドニアの騎士(3) (アフタヌーンKC) Book シドニアの騎士(3) (アフタヌーンKC)

著者:弐瓶 勉
販売元:講談社
発売日:2010/07/23
Amazon.co.jpで詳細を確認する

2010年7月21日 (水)

株:現物買い約定

先週金曜日に買おうかどうか迷っていて、結局値があまり下がらなくて買い逃したOBARA。
期間設定していたのをすっかり忘れていて、そしたら今日、買えちゃいました。
今は、バンバン下がっているときなので、本当は手を出したくなかったのだが・・・。

930円で買い約定。
今日の値動きは始値:948円、終値:934円、高値:957円、安値:923円。
まあ、明日は反発して買いが入るだろうと思うから、これくらいでもいいのかな。(だといいな)

現在の内訳は
・OBARA(6877):200株 損益-26,400円

・バンナム HD(7832):100株 損益-27,400円
・タカラトミー(7867):200株 損益-18,400円
・日本システムディベロップメント(9759):100株 損益-32,500円

現状、含み損益-104,700円(-17.48%)となりました。
あー、もう!
少し回復した時に売っておけばよかった!!
と今さら言ってもしょうがない。ここはじっと忍の字だな・・・。
とりあえずOBARAは間違って買ったようなものだから、100株を指値964円で現物売りとしておく。
今は怖くて持っていられないよ。

2010年7月19日 (月)

今日届いたCD

年間業務目標とか仕事のことを考えながら、今日1日が過ぎた。
そういえば、ウチのチームの業務目標って聞いてないな。それ聞いていないから個人の業務目標なんて立てられ・・・なくはないけど、ほんとに個人的な目標にしかならないな。
しかも、実績を見える形で出さないと意味が無いから、「頑張る」とか「へましない」とかは認められないし・・・。
毎年、書いているとネタが無くなってくる。オイラは楽しく開発出来ればそれでいいんだよ・・・。目標なんてオイラの技術力が上がることだけですよ。(管理とか求められてもできねー)

(1)パラヴレルワールド
DECO*27のボーカロイド「メグッポイド」のアルバム。
弱虫モンブランとか名曲そろいなんだけれど、ちと7曲(うち2曲は短い)は、物足りないな・・・。

パラヴレルワールド Music パラヴレルワールド

アーティスト:DECO*27
販売元:甘党トリオ
発売日:2010/07/19
Amazon.co.jpで詳細を確認する

2010年7月18日 (日)

「ヘルニアのうた」をニコ動にアップしたよ。

去年の今ごろ、腰をやってしまったことがあってその時に作った曲を、弟が編曲・演奏してくれたです。
アニメーションを作ってみたけど、画力が無いので悶絶しました。しょうがないので、ムーミンさんをモデルに写真を取って、憂いある瞳と背中でごまかしましたよ。

今回は、つんでれんこ使ってみたさ。楽だなー。


【ニコニコ動画】【ウクレレさん】ヘルニアのうた【初音ミク】

MITSUBISHI RDT232WM-Zが届いたよ!

yodobashi.com から 三菱液晶ディスプレイ RDT232WM-Zが届きました。倍速がウリですよ奥さん。
7月初めのゆうパック遅延の話を、この前に読んでいたので心配していたけど、11時くらいに無事届きました。
17時かそれくらいに注文して、21時に出ましたーってあったので、ほんまかいなと思っていたけど、すまん、疑って本当にすまん。

合わせて注文したHDIMケーブルがなかったので、別口で届くのかなーと思ったらRDT232WM-Zの箱の中に入ってました。ひせくったちゃ。そういえば前もyodobashi.comで購入した時同じことあったなーと今思い出した。

さて、使用感は・・・、と言いたいところだけど、今日は掃除をしてからセットアップしたので、あんまり使っていない。
せいぜいPS3にHDMIで繋いでトロステ見たのと、ブルーレイHDDレコーダーにつないでちょっと地デジを見た、それとPCに繋いで1920×1080すげー広い!とか驚いたり、Coccon(D端子)→AVアンプ→RDT232WM-ZというルートでMAG・ネットとかアニメ見たくらいです。(結構使っているじゃないか)
動きが激しいものとか見てないから、よくわからんのぉ。
第一印象としては、あまり大きくないなと。ヨドバシカメラで現物見ても、もうちょい大きくならんかなと思っていが、やっぱり物足りないような希ガス。いままで、iiyama ProLite C480T(19インチ)を使っていたけど、比較しても正直あんまり大きくなったような気がしない・・・。でも、PCディスプレイの倍速のものはまだ23Wインチしかないしからなーというのが今回購入の決め手だったさ。

それでもフルHDってのは、すげー綺麗でうれしい。普通の地デジTVだと23WインチのフルHDってのはない(はず)だし、フルHDの倍速となると32Wインチになっちゃって10万近くだし、選択肢に入らんっちゅーの。
それはともかく、明日、色々試して報告してみたいと思う。(BDZ-RX55と合わせてね)

しっかし、毎回掃除して思うのだが、足の踏み場がないなぁ・・・。いらんもんはさっさと捨てよう。

MITSUBISHI フルHD対応 倍速補間機能搭載 23型三菱液晶ディスプレイ(グレア) RDT232WM-Z(BK) CE MITSUBISHI フルHD対応 倍速補間機能搭載 23型三菱液晶ディスプレイ(グレア) RDT232WM-Z(BK)

販売元:三菱電機
発売日:2010/06/11
Amazon.co.jpで詳細を確認する

2010年7月17日 (土)

今日購入したもの

仕事先が今日休みということで、かねてから欲しいと思っていた、Blu-ray HDDレコーダと倍速フルHD PCモニタを上大岡ヨドバシカメラに購入しに行った。
あと、情報処理技術者試験 ネットワークスペシャリストの教本も買いに行ったです。

(1)SONY BDZ-RX55
デジタルフルハイビジョンチューナ内蔵HDD搭載ブルーレイディスク/DVDレコーダー。
HDDの容量が500GBで2番組同時録画可能で、XMBがサクサク動くってことで前から欲しいと思っていたが、なかなか値が落ち着かなかった。
7月初めに見に行った時、7/19まで75,800円で20%ポイント(15,225ポイント)とあったので、一旦調べて最安値に近いなら買おうと決めていたのが、今日まで伸びてしまった。
価格.comでは、本日の最安値が61,633円ということで、上大岡ヨドバシカメラならポイントを引いたら60,575円となり、十分なお値段となりましたぜ!よかったよかった。
でも、何をとちくるったのか、”ポイント使う”って言っちゃったよ!
せっかく20%なんだから貯めておけばよかった・・・。ま、81ポイントだけなんだけどね。

【当店ポイント2倍】ソニー 500GB HDD搭載ブルーレイレコーダーSONY【税込】 BDZ-RX55 [BDZRX55]【返品種別A】【smtb-k】【w2】/※ポイント2倍は 7/20am9:59迄 【当店ポイント2倍】ソニー 500GB HDD搭載ブルーレイレコーダーSONY【税込】 BDZ-RX55 [BDZRX55]【返品種別A】【smtb-k】【w2】/※ポイント2倍は 7/20am9:59迄

販売元:Joshin web 家電とPCの大型専門店
楽天市場で詳細を確認する

送料が1,290円だったかかかるということで、重たい思いして持って帰ってきたのだけれど、まだセットアップしてない。
その理由は後述。

(2)ゲームラボ 2010年8月号
iPed・・・かぁ。

ゲームラボ 2010年 08月号 [雑誌] Book ゲームラボ 2010年 08月号 [雑誌]

販売元:三才ブックス
発売日:2010/07/16
Amazon.co.jpで詳細を確認する


(3)iTEC 2010 ネットワークスペシャリスト「専門知識+午後問題」の重点対策
情報処理技術者試験ネットワークスペシャリストを申し込んだときに、よさそうだと書いた本とは別もの。
だって、上大岡のヨドバシカメラ、八重洲ブックセンター、あおい書店を見てみたけど、なかったんだもん。
ま、結局、初めに行った上大岡ヨドバシカメラで、厳選に厳選を重ね、この本を買った。
過去の試験問題冊子がそのままは載っていないところが気になったけれど、これが一番開設が盛り込まれており、試験対策だけではなくその後にも残る知識を得られると感じた。
「ネットワークスペシャリスト 完全攻略テキスト」もよさそうと思ったんだけど、DBと情報セキュリティもこのシリーズを買っていて、そのせいか前にネットワークを受けた時に買ったような気がして見送った。家に帰って確認したら無かったけどな!(だいぶ前に受けて惨敗だったからもう受けねーって売ったのか、本当に買っていなかったのか・・・忘れた)

ネットワークスペシャリスト「専門知識+午後問題」の重点対策〈2010〉 (情報処理技術者試験対策書) Book ネットワークスペシャリスト「専門知識+午後問題」の重点対策〈2010〉 (情報処理技術者試験対策書)

著者:長谷 和幸
販売元:アイテック
Amazon.co.jpで詳細を確認する


(4)iTEC 高度専門 ネットワーク技術 (情報処理技術者試験対策書)
んで、yodobashi.comで注文した。だいたい本はAmazonで買ってしまうのだけど、これについては割引されてないんだもん。yodobashi.comでは3%のポイントが付くだけだけどね・・・。

高度専門 ネットワーク技術 (情報処理技術者試験対策書) Book 高度専門 ネットワーク技術 (情報処理技術者試験対策書)

著者:長谷 和幸
販売元:アイテック
Amazon.co.jpで詳細を確認する

あと後、知識として残すために使える本だと思います。入荷数が少ない割に買われているのか、上大岡には無かった・・・。有りそうなところは、あと近場で思いつくのは、横浜のあおい書店くらいか・・・。

(5)三菱 RDT232WM-Z
BDZ-RX55をセットアップしていない理由・・・。
それはこれがまだ届いてないってこと。
ウチの環境ではまだHDMI端子をさせるものが無いのだよ。
といわけで、これをyodobashi.comで注文。16hで着くってうたっていたけど、ゆうパックで送るってなっているんだよな・・・。今は正常化しているのか?
ちなみに上大岡ヨドバシにもモノがあったけれど、うろ覚えでスマンが54,000円くらいで10%ポイントって、ありえねー。価格.comで調べてみると本日の最安値は43,790円。yodobashi.comだと49,900円で13%ポイント(6,438)だから、ポイントを引いた値段は43,462円になるのか。

MITSUBISHI フルHD対応 倍速補間機能搭載 23型三菱液晶ディスプレイ(グレア) RDT232WM-Z(BK) CE MITSUBISHI フルHD対応 倍速補間機能搭載 23型三菱液晶ディスプレイ(グレア) RDT232WM-Z(BK)

販売元:三菱電機
発売日:2010/06/11
Amazon.co.jpで詳細を確認する

あ、ちなみに上大岡ヨドバシでは、ディスプレイがまとまっておいてある所じゃなくて、モンスターハンター3のデモがある所に置いてありました。リモコンが無くてボタンをぺしぺし押すしかないんだけど、あれ・・・。

(6)BSHD0110BK (ブラック) [HDMIケーブル 1.0m]
ついでにHDMIケーブルも2本購入しておいた。安め。
16hで届くモノで、一番よさそうなのがこれだったので・・・。

バッファローコクヨサプライ BUFFALO AVケーブル HDMIプラグ:HDMIプラグ 廉価版 1.0m BSHD0110BK ブラック CE バッファローコクヨサプライ BUFFALO AVケーブル HDMIプラグ:HDMIプラグ 廉価版 1.0m BSHD0110BK ブラック

販売元:バッファローコクヨサプライ
発売日:2008/07/04
Amazon.co.jpで詳細を確認する

2010年7月14日 (水)

情報処理技術者試験「ネットワークスペシャリスト」を申し込んだ

一昨日(7月12日月曜日)から情報処理推進機構のHPから申し込みができるようになってました。
年間業務目標を書くのに今度、何を受けようか見てみたらたまたま見つけた。(年間業務目標なんて思いつかねーよ!向上心が無いって言うより、年季の入った下っ端には夢も希望もねっす。)
メールでお知らせも届いていたけど、見る暇ないよ!

今回は、ネットワークスペシャリストを受けることにしました。
前回のエントリで”ITサービスマネージャがよさそうだ”と書いたけど、論述式だ・・・。無理だ。

教本ではないけれど、この本がよさそうだと狙っているのだが、通り道である上大岡ヨドバシカメラにさえ寄れない・・・。帰る頃には閉まっているんだもの。たまには早く帰りたいのぉ。

高度専門 ネットワーク技術 (情報処理技術者試験対策書) Book 高度専門 ネットワーク技術 (情報処理技術者試験対策書)

著者:長谷 和幸
販売元:アイテック
Amazon.co.jpで詳細を確認する

この手の本は高いから慎重に選びたいものです。

2010年7月11日 (日)

汎用的なハッシュテーブル作ってみた

いつもの通りデバッグしていないからまともに動くかわからんけど。
名前もコメントも適当だぜ!
詳しくは書かんが、GPhashFuncが汎用関数で、ChashFuncがカスタマイズ関数ですよー。

2012/5/20追記:Linuxで使ってみたら盛大に落ちる。配列Indexに-1を入れてら。修正途中です・・・。どういう設計だったか忘れたので、修正困難。

2012/5/25追記: 末尾にあるリンク先のプロジェクトは、一応修正できたと思う。

●GPhashFunc.h

#ifndef _GPHASHFUNC_H_
#define _GPHASHFUNC_H_

/* General Purpus Hash functions */
#include "hashDef.h"

typedef WORD (*HASHFUNC)(BYTE* hashKey, WORD hashKeyLen);

enum HASH_BUFF_FLAG{
    HASH_BUFF_ACTIVE,
    HASH_BUFF_DEACTIVE
};

/* hash buffer */
struct Hash_buff_t{
    BYTE *hashKey;
    SWORD backwardIndex;
    SWORD forwardIndex;
    BYTE activeFlag;
};

/* Hash custom manager */
struct Hash_CSTM_mng_t{
    /* Hash Function */
    WORD hashKeyLen;
    HASHFUNC hash_func;

    /* Hash Table */
    WORD hashTblSize;
    struct Hash_buff_t *hashTbl;
   
    /* Hash Buffer */
    WORD hashBuffListSize;
    struct Hash_buff_t *hashBuffList;
    BYTE *hashKeyBuff;  /* sizeof hashKeyLen*hashBuffListSize */
};

/* hash manager */
struct Hash_mng_t{
    struct Hash_CSTM_mng_t customHash;
   
    /* Empty HashBuffer Index */
    SWORD emptyHashBuff_head;
    SWORD emptyHashBuff_tail;
};

/* function declare */
/* Initialize */
RESULT initHash(
    struct Hash_mng_t *hashMng,
    struct Hash_buff_t *hashTbl,
    WORD HashTblSize,
    struct Hash_buff_t *hashBuffList,
    BYTE *hashKeyBuff,
    WORD hashBuffListSize,
    HASHFUNC hash_func,
    WORD hashKeyLen
);

/* get Hash Value */
RESULT getHashValue(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,
    WORD *hashValue
);

/* Regist Hash Value */
RESULT regHashValue(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,      /* (in)  Hash Key Array */
    WORD *hashBuffIndex /* (out) Hash BuffIndex */
);

/* Deregist Hash Value */
RESULT deregHashValue(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,      /* (in)  Hash Key Array */
    WORD *hashBuffIndex /* (out) Hash BuffIndex */
);

/* Get Hash Buffer Index from Hash Value */
RESULT getHashBuffIndex(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,
    WORD *hashBuffIndex
);
#endif

●GPhashFunc.c

/* General Purpus Functions Definition */
#include <string.h>
#include "GPhashFunc.h"

/* function declare */

/*---inner functions-------------*/
static RESULT checkHasnMng(
    struct Hash_mng_t *hashMng
){
    RESULT result = COM_NG;

    /* error check */
    if(hashMng == NULL){

        goto func_end;
    }

    /* Hash Function */
    if(hashMng->customHash.hashKeyLen <= 0 ||
       hashMng->customHash.hashKeyLen > SWORD_MAX){

        goto func_end;
    }
    if(hashMng->customHash.hash_func == NULL){

        goto func_end;
    }

    /* Hash Table */
    if(hashMng->customHash.hashTblSize <= 0 ||
       hashMng->customHash.hashTblSize > SWORD_MAX){

        goto func_end;
    }
    if(hashMng->customHash.hashTbl == NULL){

        goto func_end;
    }

    /* Hash Buffer */
    if(hashMng->customHash.hashBuffListSize <= 0 ||
       hashMng->customHash.hashBuffListSize > SWORD_MAX){

        goto func_end;
    }
    if(hashMng->customHash.hashBuffList == NULL){

        goto func_end;
    }

    result = COM_OK;

func_end:
    return result;
}

/*---external functions-------------*/
/* Initialize */
RESULT initHash(
    struct Hash_mng_t *hashMng,
    struct Hash_buff_t *hashTbl,
    WORD hashTblSize,
    struct Hash_buff_t *hashBuffList,
    BYTE *hashKeyBuff,
    WORD hashBuffListSize,
    HASHFUNC hash_func,
    WORD hashKeyLen
){
    WORD index = 0;
    RESULT result = COM_NG;

    /* Error Check */
    if(hashMng == NULL){
        goto func_end;
    }
    if(hash_func == NULL){
        goto func_end;
    }
    if(hashKeyLen <= 0 ||
       hashKeyLen > SWORD_MAX){
        goto func_end;
    }
    if(hashTblSize <= 0 ||
       hashTblSize > SWORD_MAX){
        goto func_end;
    }
    if(hashTbl == NULL){
        goto func_end;
    }
    if(hashBuffListSize <= 0 ||
       hashBuffListSize > SWORD_MAX){
        goto func_end;
    }
    if(hashBuffList == NULL){
        goto func_end;
    }
    if(hashKeyBuff == NULL){
        goto func_end;
    }

    /* Hash Function */
    hashMng->customHash.hashKeyLen = hashKeyLen;
    hashMng->customHash.hash_func = hash_func;

    /* Hash Table */
    hashMng->customHash.hashTblSize = hashTblSize;
    hashMng->customHash.hashTbl = hashTbl;
   
    /* Hash Buffer */
    hashMng->customHash.hashBuffListSize = hashBuffListSize;
    hashMng->customHash.hashBuffList = hashBuffList;
    hashMng->customHash.hashKeyBuff = hashKeyBuff;


    hashMng->emptyHashBuff_head = 0;
    hashMng->emptyHashBuff_tail = hashBuffListSize-1;

    /* set Hash Table first value */
    for(index = 0; hashTblSize > index; index++){

        hashMng->customHash.hashBuffList[index].forwardIndex = -1;
        hashMng->customHash.hashBuffList[index].backwardIndex = -1;
    }
   
    /* make Empty Hash Buffer List */
    for(index = 0; hashBuffListSize > index; index++){

        if(index == hashBuffListSize-1){
            hashMng->customHash.hashBuffList[index].forwardIndex = -1;
        } else {
            hashMng->customHash.hashBuffList[index].forwardIndex = index+1;
        }

        if(index == 0){
            hashMng->customHash.hashBuffList[index].backwardIndex = -1;
        } else {
            hashMng->customHash.hashBuffList[index].backwardIndex = index-1;
        }
        hashMng->customHash.hashBuffList[index].hashKey = &(hashKeyBuff[hashKeyLen*index]);
    }

    result = COM_OK;
   
func_end:
    return result;
}

/* get Hash Value */
RESULT getHashValue(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,
    WORD *hashValue
){
    RESULT result = COM_NG;

    if(checkHasnMng(hashMng) == COM_NG){
        goto func_end;
    }
    if(hashKey == NULL){
        goto func_end;
    }   
    if(hashValue == NULL){
        goto func_end;
    }   
   
    *hashValue = (*hashMng->customHash.hash_func)(
                                        hashKey,
                                        hashMng->customHash.hashKeyLen
                                    );

    result = COM_OK;

func_end:
    return result;
}

/* Regist Hash Value */
RESULT regHashValue(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,      /* (in)  Hash Key Array */
    WORD *hashBuffIndex /* (out) Hash BuffIndex */
){
    RESULT result = COM_NG;
    WORD hashValue = 0;
    struct Hash_buff_t *hashBuff;
    SWORD entryIndex;

    RESULT ret = COM_NG;
   
    /* Is Empty List Exist No Entry? */
    if(hashMng->emptyHashBuff_head == -1){
       
        goto func_end;
    }
   
    /* get Hash value */
    ret = getHashValue(
                hashMng,
                hashKey,
                &hashValue
            );
               
    if(ret == COM_NG){
        goto func_end;
    }

    /* regist value */
    hashBuff = &(hashMng->customHash.hashTbl[hashValue]);
    /* get Entry from EmptyHashBuffer */
    entryIndex = hashMng->emptyHashBuff_head;
    hashMng->emptyHashBuff_head = hashMng->customHash.hashBuffList[entryIndex].forwardIndex;
    if(hashMng->emptyHashBuff_head == -1){
        hashMng->emptyHashBuff_tail = -1;
    } else {
        hashMng->customHash.hashBuffList[hashMng->emptyHashBuff_head].backwardIndex = -1;
    }
   
    if(hashBuff->backwardIndex == -1){
        /* first entry */
        hashBuff->forwardIndex = entryIndex;
    }

    /* set entry(add new entry to setup Value hashBuffList last Entry) */
    hashMng->customHash.hashBuffList[hashBuff->backwardIndex].forwardIndex = entryIndex;
    memcpy(
        hashMng->customHash.hashBuffList[entryIndex].hashKey,
        hashKey,
        hashMng->customHash.hashKeyLen);
    hashMng->customHash.hashBuffList[entryIndex].backwardIndex = hashBuff->backwardIndex;
    hashMng->customHash.hashBuffList[entryIndex].forwardIndex = -1;
    hashBuff->backwardIndex = entryIndex;
       
    *hashBuffIndex = entryIndex;
   
    result = COM_OK;
   
func_end:
    return result;
}

/* Deregist Hash Value */
RESULT deregHashValue(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,      /* (in)  Hash Key Array */
    WORD *hashBuffIndex /* (out) Hash BuffIndex */
){
    RESULT result = COM_NG;
    WORD hashValue = 0;
    WORD searchIndex;
    SWORD entryIndex;
    WORD forwardIndex;
    WORD backwardIndex;

    RESULT ret = COM_NG;

    ret = getHashValue(
                hashMng,
                hashKey,
                &hashValue
            );
    if(ret == COM_NG){

        goto func_end;
    }

    searchIndex = 0;
    ret = getHashBuffIndex(
                hashMng,
                hashKey,
                &searchIndex
            );
    if(ret == COM_NG || searchIndex == -1){

        goto func_end;
    }

    /* delete entry */
    forwardIndex = hashMng->customHash.hashBuffList[searchIndex].forwardIndex;
    backwardIndex = hashMng->customHash.hashBuffList[searchIndex].backwardIndex;
   
    if(forwardIndex == -1){
        if(backwardIndex == -1){
            hashMng->customHash.hashTbl[hashValue].forwardIndex = -1;
        } else {
            hashMng->customHash.hashTbl[hashValue].forwardIndex = backwardIndex;
        }
    } else {
        hashMng->customHash.hashBuffList[backwardIndex].forwardIndex =
            hashMng->customHash.hashBuffList[forwardIndex].forwardIndex;
    }
    if(backwardIndex == -1){
        if(forwardIndex == -1){
            hashMng->customHash.hashTbl[hashValue].backwardIndex = -1;
        } else {
            hashMng->customHash.hashTbl[hashValue].backwardIndex = forwardIndex;
        }
    } else {
        hashMng->customHash.hashBuffList[forwardIndex].backwardIndex =
            hashMng->customHash.hashBuffList[backwardIndex].backwardIndex;
    }

    /* Add deleted entry to EmptyHashBuffer last Entry */
    entryIndex = hashMng->emptyHashBuff_tail;
    hashMng->emptyHashBuff_tail = searchIndex;

    memset(
        hashMng->customHash.hashBuffList[searchIndex].hashKey,
        0xff,
        hashMng->customHash.hashKeyLen);
       
    hashMng->customHash.hashBuffList[searchIndex].backwardIndex = -1;
    if(entryIndex == -1){
        hashMng->customHash.hashBuffList[searchIndex].backwardIndex = -1;
    } else {
        hashMng->customHash.hashBuffList[entryIndex].forwardIndex = searchIndex;
        hashMng->customHash.hashBuffList[searchIndex].backwardIndex = entryIndex;
    }
    if(hashMng->emptyHashBuff_head == -1){
        /* first entry */
        hashMng->emptyHashBuff_head = searchIndex;
    }

    *hashBuffIndex = searchIndex;

    result = COM_OK;

func_end:
    return result;
}

/* Get Hash Buffer Index from Hash Value */
RESULT getHashBuffIndex(
    struct Hash_mng_t *hashMng,
    BYTE *hashKey,
    WORD *hashBuffIndex
){
    WORD hashValue = 0;
    struct Hash_buff_t *hashBuff;
    SWORD searchIndex;

    RESULT result = COM_NG;
    RESULT ret = COM_NG;
    int cmpResutl;
   
    /* get Hash value */
    ret = getHashValue(
                hashMng,
                hashKey,
                &hashValue
            );
               
    if(ret == COM_NG){
        goto func_end;
    }

    /* regist value */
    hashBuff = &(hashMng->customHash.hashTbl[hashValue]);
   
    searchIndex = hashBuff->forwardIndex;
    /* search for hashBufferList's hashKey */
    while(searchIndex != -1){
        cmpResutl = memcmp(
                        hashMng->customHash.hashBuffList[searchIndex].hashKey,
                        hashKey,
                        hashMng->customHash.hashKeyLen);
        if(cmpResutl == 0){
            break;
        }
        searchIndex = hashMng->customHash.hashBuffList[searchIndex].forwardIndex;
    }

    *hashBuffIndex = searchIndex;

    if(searchIndex == -1){

        goto func_end;
    }
   
    result = COM_OK;
   
func_end:
    return result;
}

●hashDef.h

#ifndef _HASHDEF_H_
#define _HASHDEF_H_

typedef unsigned long DWORD;
typedef unsigned int WORD;
typedef int SWORD;
typedef unsigned char BYTE;
typedef char RESULT;

#define COM_OK (0)
#define COM_NG (-1)

#define SWORD_MAX (2147483647)

#endif

●ChashFunc.h

#ifndef _CHASHFUNC_H_
#define _CHASHFUNC_H_

/* custom Hash Functions */
#include "hashDef.h"

RESULT initCHash();

/* get Custom Hash Value */
RESULT getCHashValue(
    BYTE *hashKey,
    WORD *hashValue
);

/* Regist Custom Hash Value */
RESULT regCHashValue(
    BYTE *hashKey,      /* (in)  Hash Key Array */
    WORD value          /* (in)  set Value */
);

/* Deregist Custom Hash Value */
RESULT deregCHashValue(
    BYTE *hashKey       /* (in)  Hash Key Array */
);

/* Get Hash Buffer Index from Hash Value */
RESULT getCHashBuffValue(
    BYTE *hashKey,
    WORD *value
);
#endif

●ChashFunc.c

#include <stdlib.h>
#include "GPhashFunc.h"
#include "ChashDef.h"

static struct Hash_mng_t hashMng;
static struct Hash_buff_t hashTbl[HASH_TBL_SIZE];
static BYTE hashKeyBuff[HASH_BUFF_SIZE];
static struct Hash_buff_t hashBuffList[HASH_BUFF_SIZE];

static struct Chash_value_tbl_t  chashValueTbl[HASH_BUFF_SIZE];

static WORD charTOdecimal(char d1, char d2)
{
    char data[3];
    data[0] = d2;
    data[1] = d1;
    data[2] ='\0';
    return atoi(data);
}

static WORD chashfunc(
    BYTE* hashKey,
    WORD hashKeyLen
){
    WORD index = 0;
    WORD result  = 0;
    WORD result1 = 0;
    WORD result2 = 0;
    WORD data[5];

    data[0] = charTOdecimal(hashKey[0], hashKey[1]);
    data[1] = charTOdecimal(hashKey[2], hashKey[3]);
    data[2] = charTOdecimal(hashKey[4], hashKey[5]);
    data[3] = charTOdecimal(hashKey[6], hashKey[7]);

    result1 =(((data[3]*43 + data[2])*43 + data[1])*43 + data[0]) % 768;

    data[0] = charTOdecimal(hashKey[ 8], hashKey[ 9]);
    data[1] = charTOdecimal(hashKey[10], hashKey[11]);
    data[2] = charTOdecimal(hashKey[12], hashKey[13]);
    data[3] = charTOdecimal(hashKey[14], hashKey[15]);

    result2 =(((data[3]*43 + data[2])*43 + data[1])*43 + data[0]) % 768;

    result = (result1 + result2) % 768;

    return result;
}

/* Initialize */
RESULT initCHash(
){
    return initHash(
                &hashMng,
                hashTbl,
                HASH_TBL_SIZE,
                hashBuffList,
                hashKeyBuff,
                HASH_BUFF_SIZE,
                &chashfunc,
                HASH_KEY_SIZE
            );
}

/* get Hash Value */
RESULT getCHashValue(
    BYTE *hashKey,
    WORD *hashValue
){
    RESULT result = COM_NG;

    result = getHashValue(
                    &hashMng,
                    hashKey,
                    hashValue
                );

    return result;
}

/* Regist Hash Value */
RESULT regCHashValue(
    BYTE *hashKey,      /* (in)  Hash Key Array */
    WORD value          /* (in)  set Value */
){
    WORD hashBuffIndex;
    RESULT result = COM_NG;
    RESULT ret = COM_NG;

    ret = regHashValue(
                    &hashMng,
                    hashKey,        /* (in)  Hash Key Array */
                    &hashBuffIndex  /* (out) Hash BuffIndex */
                );
    if(ret == COM_OK){
        if(hashBuffIndex < HASH_BUFF_SIZE){
            chashValueTbl[hashBuffIndex].value = value;
            result = COM_OK;
        }
    }

    return result;
}

/* Deregist Hash Value */
RESULT deregCHashValue(
    BYTE *hashKey       /* (in)  Hash Key Array */
){
    WORD hashBuffIndex;
    RESULT result = COM_NG;
    RESULT ret = COM_NG;

    ret = deregHashValue(
                    &hashMng,
                    hashKey,        /* (in)  Hash Key Array */
                    &hashBuffIndex  /* (out) Hash BuffIndex */
                );
    if(ret == COM_OK){
        if(hashBuffIndex < HASH_BUFF_SIZE){
            chashValueTbl[hashBuffIndex].value = -1;
            result = COM_OK;
        }
    }

    return result;
}

RESULT getCHashBuffValue(
    BYTE *hashKey,
    WORD *value
){
    WORD hashBuffIndex;
    RESULT result = COM_NG;
    RESULT ret = COM_NG;

    ret = getHashBuffIndex(
                &hashMng,
                hashKey,
                &hashBuffIndex
            );
    if(ret == COM_OK){
        if(hashBuffIndex < HASH_BUFF_SIZE){
            *value = chashValueTbl[hashBuffIndex].value;
            result = COM_OK;
        }
    }

    return result;
}

●ChashDef.h

#ifndef _CHASHDEF_H_
#define _CHASHDEF_H_

#include "hashDef.h"

#define HASH_TBL_SIZE (768)
#define HASH_BUFF_SIZE (HASH_TBL_SIZE*2)
#define HASH_KEY_SIZE (15)

struct Chash_value_tbl_t{
    WORD value;
};

#endif

●main.c

#include <stdio.h>
#include "hashDef.h"
#include "ChashFunc.h"

int main()
{
    RESULT ret1 = 0;
    RESULT ret2 = 0;
    RESULT ret3 = 0;
    WORD value = 0;
    BYTE haskKey[] = {'0', '1', '2', '3', '4', '5', '6', '7',
                      '8', '9', '0', '1', '2', '3', '4', };

    initCHash();
    ret1 = regCHashValue(haskKey, 123);
    ret2 = getCHashBuffValue(haskKey, &value);
    ret3 = deregCHashValue(haskKey);
    value = 0;
    ret1 = regCHashValue(haskKey, 456);
    ret2 = getCHashBuffValue(haskKey, &value);
    ret3 = deregCHashValue(haskKey);
    return 0;
}

やべ、<>を考えずにはっつけたから、途中がどうなっているかわからんや。

続きを読む "汎用的なハッシュテーブル作ってみた" »

今飲んでいる酒

今、飲んでいるお酒は、株式会社 南部美人さんの特別純米酒 南部美人です。

いつもオイラが飲んでいる日本酒よりちょっとコクが強めで、荒々しい感じ。吟醸系な感じかとも思ったけど、そこまでしつこくはないかな?
んー、油っこい食べ物、揚げ物とかに合うかな。それもとんかつとか海老フライとかソースかけるヤツ。

P1030765

P1030767


【岩手/南部美人】 南部美人 特別純米 (1800ml) 【岩手/南部美人】 南部美人 特別純米 (1800ml)
販売元:ショッピングフィード
ショッピングフィードで詳細を確認する

2010年7月10日 (土)

風邪ひきました

昨日の話。
測っていないから正確なところはわからんが、感覚的に熱は出てない。でも、のどがイガイガして、なんかフラフラする。
熱が出ていないのにフラフラするって・・・。

とりあえず仕事の方は、直近の期限のものがないので休んだ。
かなり疲れが累積している+職場でクーラーの風が右半身だけあたって自律神経をぶっ壊そうとしているのかしらんってな感じなので、体が壊れるのも当たり前だ。

休んだのはいいのだけれど、隣の家で塗装を始めるのか、足場を組んでいて職人の兄ちゃん達が足場をガッツンガッツン叩いてゴミを落としていた。
うるさくて眠れん。

・・・うそ、がっつり眠った。
今朝、のどのイガイガ感は薄れた。
今日は、体をいたわってのんびりしたいと思う。
あ、今期、新作アニメ見なくちゃ・・・。

とはいえ、夜中に今度仕事で使うハッシュバッファのプログラムをちょいと作っていたけどな!
汎用に使えるようにするために、ポインタを使わないで配列で扱えるようにしてみた。
puppy linux のメモ帳ってCソースのコンパイルもできるのな。プロジェクト作成してソースをまとめて管理できるし。使い勝手がええな。

2010年7月 9日 (金)

今日届いたもの

なんか喉がイガイガする。いや、痛くなってきた。
風邪かしらん。

(1)ヴァルデマールの絆 盗人の報復
東京創元社で出版された<ヴァルデマールの風>に出てきたスキッフの少年時代の話。
貧民窟に居た頃に盗賊となる辺りとのこと。

Book 盗人の報復―ヴァルデマールの絆 (C・NOVELSファンタジア)

著者:マーセデス・ラッキー
販売元:中央公論新社
Amazon.co.jpで詳細を確認する

(2)針なしステープラー (ハンディタイプ)ホワイト SLN-MSH104W
結構、期待していたのだが、これ4枚までしか閉じれるないってことになっている。少なすぎ。
実際やってみると、コピー用紙なら6枚くらいなら軽々閉じれる。紙を入れるところにストッパーみたいな小山があって、6枚以上はちょっと入りにくいかも。
閉じた紙は、乱暴に扱わなければ結構留まっている感があるので、もっと枚数が多ければ使えるツールになると思うのだが・・・。

【予約受付中】TVCMでもおなじみ!環境に優しい針なしステープラー!【コクヨ】針なしステープラー ハリナックス(ハンディタイプ) ホワイト SLN-MSH104W  ★kitchen0705★ 【予約受付中】TVCMでもおなじみ!環境に優しい針なしステープラー!【コクヨ】針なしステープラー ハリナックス(ハンディタイプ) ホワイト SLN-MSH104W  ★kitchen0705★

販売元:銀座嶋屋
楽天市場で詳細を確認する

ストッパーになっている部分を削ればたぶん10枚くらいは入りそうだ。
やってみっか?
でも、ばらし方が分からんなぁ。

2010年7月 8日 (木)

今日届いたもの

忙しい、忙しくないというのは、本人がさっさと諦めるか否かにかかっているのではないかと思うようになってきたのだが、やはり一仕事が終わっていないと気持ち悪いものだとも思う。

(1)もやしもん 9
美味しんぼ ばりに農業について問題提起したり。
中途半端なところで次の巻に続きやがって!つぎ2011年だとぉ。

もやしもん(9) (イブニングKC) Book もやしもん(9) (イブニングKC)

著者:石川 雅之
販売元:講談社
発売日:2010/07/06
Amazon.co.jpで詳細を確認する

ベリーショートやほー!

(2)SURELY SOMEDAY
菅野よう子さんの新譜。映画「SURELY SOMEDAY」のサントラ

SURELY SOMEDAY Music SURELY SOMEDAY

アーティスト:菅野よう子
販売元:Grand Trax
発売日:2010/07/07
Amazon.co.jpで詳細を確認する

10,11曲目が気に入りましてよ。

2010年7月 4日 (日)

今日注文したもの

無印良品のドライジンジャーエールをネット販売で注文しようかしまいか悩んでいる。
1ケース24本入りというところで引っかかっている。
2ケース・・・。いやいや。

(1)シドニアの騎士 3

Book シドニアの騎士 3 (アフタヌーンKC)

著者:弐瓶 勉
販売元:講談社
Amazon.co.jpで詳細を確認する

(2)盗人の報復 (ヴァルデマールの絆)
C・NOVELSファンタジアの方のヴァルデマール年代記

Book 盗人の報復―ヴァルデマールの絆 (C・NOVELSファンタジア)

著者:マーセデス・ラッキー
販売元:中央公論新社
Amazon.co.jpで詳細を確認する

(3)太陽神の司祭 上下 (ヴァルデマールの嵐1)
創元推理文庫の方のヴァルデマール年代記

Book 太陽神の司祭 上 (ヴァルデマールの嵐1) (創元推理文庫)

著者:マーセデス・ラッキー
販売元:東京創元社
Amazon.co.jpで詳細を確認する

Book 太陽神の司祭 下 (ヴァルデマールの嵐1) (創元推理文庫)

著者:マーセデス・ラッキー
販売元:東京創元社
Amazon.co.jpで詳細を確認する


(4)初音ミク/Blu-ray「ミクの日感謝祭 39's Giving Day Project DIVA presents 初音ミク・ソロコンサート~こんばんは、初音ミクです。~」
俺の心が買っておけって囁くんだ。

初音ミク/Blu-ray「ミクの日感謝祭 39's Giving Day Project DIVA presents 初音ミク・ソロコンサート~こんばんは、初音ミクです。~」 DVD 初音ミク/Blu-ray「ミクの日感謝祭 39's Giving Day Project DIVA presents 初音ミク・ソロコンサート~こんばんは、初音ミクです。~」

販売元:ジェネオン・ユニバーサル
発売日:2010/09/01
Amazon.co.jpで詳細を確認する


(5)パラヴレルワールド
DECO*27のアルバムですよー。1,575円でお得ですよー。

パラヴレルワールド Music パラヴレルワールド

アーティスト:DECO*27
販売元:甘党トリオ
発売日:2010/07/19
Amazon.co.jpで詳細を確認する


(6)コクヨS&T 針なしステープラー<ハリナックス> ハンディタイプ 白 SLN-MSH104W
ホッチキスの代わりに、紙の一部を切り曲げ抑えるようにする文房具。1穴用。
でも、使用可能枚数がそんなに多くなくて、ホッチキスに完全に置換われるものではないらしい。

針を使わず紙を綴じる!片手で使える針なしステープラ!◇◆7月初旬新発売☆予約受付中◆◇入荷次第発送!!針なしステープラー<ハリナックス> ハンディタイプホワイト(白) コクヨ 10-SLN-MSH104W 針を使わず紙を綴じる!片手で使える針なしステープラ!◇◆7月初旬新発売☆予約受付中◆◇入荷次第発送!!針なしステープラー<ハリナックス> ハンディタイプホワイト(白) コクヨ 10-SLN-MSH104W

販売元:倉敷文具RUKARUKA
楽天市場で詳細を確認する

GOD SPEED オグリキャップ

オグリキャップが逝った。
オイラが大学生の頃に活躍していた「葦毛の怪物」の異名をとった馬、オグリキャップが・・・。

余生を暮らしていた牧場で足を取られて、骨折。安楽死とのこと。25歳。

2010年7月 3日 (土)

こういう曲に弱いんだよな

【ニコニコ動画】【初音ミク(KEI)】ピエロ【オリジナル】

【ニコニコ動画】【恥PV】ピエロ【画質改善版】

2010年7月 1日 (木)

今日届いた本

PCのモニタも見に行ったんだっけ。
三菱の倍速フルHDモニタRDT232WM-Zの現物が見られないかと思って、横浜ヨドバシ、ソフマップ、上大岡ヨドバシを回ってみた。(ビックカメラ忘れてた)
横浜ヨドバシは、見当たらず。
ソフマップは、モノがあったがなにもデモっておらず、PCの画面が見えているだけ。そのPCも操作できないので訳分からん。青はちゃんと発色されてるねーとしか・・・。
上大岡ヨドバシは、モノもありPCも操作できたのだが・・・。解像度が1600×1200でフルHDじゃねー!! 一応、Windows 7サンプルビデオ”大自然”というのがあったので再生してみたけど・・・。わかんねー!!
もういい、買う。買って確かめる。
あと、SONY ブルーレイレコーダーRDZ-RX55が欲しいと思って見に行ったら79,800円で15%(7/31まで)とあった。微妙な値引き価格だな・・・。

(1)ゲーマガ 2010年8月号
トトリのアトリエ クリアポスター×2が付いてくる。
欲しいゲームは特になし。

ゲーマガ 2010年 08月号 [雑誌] Book ゲーマガ 2010年 08月号 [雑誌]

販売元:ソフトバンククリエイティブ
発売日:2010/06/30
Amazon.co.jpで詳細を確認する

PS3にバーチャファイター5最新版 出ないかな・・・。

映画「告白」を見ました

今日の午前中は健康診断に行き、その後はいつもの通り映画を見に行きました。
特に趣味に合いそうなものが無かったので、仕事中にチャットで聞いてみると「告白」が面白かったとのこと。
まあ、映画の日だし、ハズレだったとしても千円ならいいかと思って見に行ってみた。(上大岡TOHOシネマズで見た。結構混んでいた。)

・・・
邦画としては、内容が詰まっていて見せ方もよく考えられている作品だと思う。(その見せ方は、あからさまでしつこいと思ったけど、ま、気になるほどではない)
でもなぁ、救いが無いんだよ、この話。
オイラの嫌いな「ガキンチョが手前の言い分をぶちまける」×クラス人数分 というシーンが初めの大半を占めていて、うぜぇなぁ、肌に合わんなぁ、なんでこんな映画を見ちゃったんだろうと後悔した。こんなのがずっと続くのかと思ったら、別の人物の”告白”に移り、別の面が明らかになることでちょっと面白くなる。
・・・
何かどんでん返しが起きてギャグに移行すればいいのに、とか期待していたのだけど、詰まらん方向に収束してきて、結局、救いが無い終わりで後味悪いのなんのって・・・。
なにが悲しくて(夢を売る商売である)映画を見てこんなドンヨリした気持ちにならなければならないのだろうかと、頭痛になったオイラは後悔したとさ。
頭痛は、スクリーンから遠めで見たから目が疲れたのと、水も昼飯も抜いたせいだろうけど。

思えば、この映画観る前にケチがついたんだよな・・・。
京急百貨店裏の所で、無印良品で買ったドライジンジャーエール(辛子入りでメッチャ辛い!)とミルクたっぷりアイスモナカを食べていると、両脇でタバコを吸われるし、食べ終わった後、映画が始まるまでなにしようかなーと考えつつ一息ついていると、変なおばさんがオイラに向かって「じっとしていないで喋ればいいでしょ」って言ってきた。なんじゃそりゃ?それから向こうに行って「東京大空襲が・・・」とかなんか言っていた・・・。呟くってレベルじゃねーぞ。

この映画の気に入らなかったところとか、き●●いおばさんに言われたことを考えてみたり、なんだかなーと思う一日でした。

初音ミク -Project DIVA- 追加曲集第2弾「もっとおかわり、リン・レン ルカ」の発売日

初音ミク -Project DIVA- 追加曲集第2弾「もっとおかわり、リン・レン ルカ」は、今日2010年7月1日は発売日なのだけど、0時をちょっと回った今ではPlaystation Storeに出てこない・・・。

朝になったら、リトライしてみよう。
健康診断の日で、そのまま休むつもりだし。

トエトのゲームが、「どこでもいっしょっ」ぽいなーとか思ったりして。面白そうだ。

→追記:17時くらいに帰ってきて購入。ウチのネットは細いから結構時間がかかった。途中で寝てしまったのでよくわからんけど。トエトは、やっぱりPS版「どこでもいっしょっ」と同じ感じで、言葉を覚えさせてしりとりをする感じ?好感度パラメータもあるのかしらん。え?おかわりの方のゲーム?やってませんにょ・・・。

« 2010年6月 | トップページ | 2010年8月 »