う、進んでない

JRuby入れたところで、満足してしまって進んでません。
CRubyとJRubyを入れた環境でJRubyを優先させるのはパスの切り方だろうか?
とか漠然と思って、そのまま….
さて、JRubyでgemしてみたい!

広告

rubyタグ

やー、rybyタグってまだまだローカルなタグなんですねー。
しらんかったw
<IEで表示してみた、前の記事↓↓↓↓↓↓>
IEで表示

中島みゆきのオールナイトニッポン

なんと、オールナイトニッポン45時間スペシャルで、昔のパーソナリティの方々が復活した特番がくまれてました。
中でも昔良く聞いていた 中島みゆき[ぺったん]のオールナイトニッポン[すっぽんぽん]が1時間枠で復活!でありました。いやー、ノリが懐かしかったです!
いわゆる2部の時間帯で、ちょっと慣れない感じだったみたいですけど、ハガキよむ時に「有名希望〜」とか。ははは。懐かしい。テンション変わらないですねー。ほんと元気。NHKで一時期パーソナリティしてたころも一緒だったもんなー。さすがだ。
つづけてその後の枠は 谷山浩子[はまこ]のオールナイトニッポンですよ。実は谷山さんは2部担当だったので、リアルタイムで聞く気力が続かず聞き続けてはいなかったわけですが…
お二人ともほんと年齢(失礼)を感じさせないテンションで大変たのしませていただきました。
4月からは月一で中島みゆきのオールナイトニッポン復活!!ということなんで、楽しみにしていたいと思います。北海道でもちゃんとネットされるかなー。

SoftDesign2013/01号と初めてのiOSプログラミング
最近ちょくちょく買っているSoftwareDesign誌とオライリーの「初めてのiOSプログラミング 第2版」を買いました。
まだ読み始め。(最近、そればっかりだなぁ)
SoftwareDesign誌はそろそろ次号が出るころですが、近所の本屋で買いそびれたので待ちに出たついでに購入。
最近WEB+DB PRESS誌よりもしっくりくる記事が多いというか…(単に、自分がWeb系開発から遠のいているだけか…)
「初めてのiOSプログラミング 第2版」はまた性懲りも無く買いましたって感じ。
ぼちぼちと読み進めていく予定です。
ちなみに購入したのはジュンク堂ですが…
ジャンク堂のポイントカード
ポイントカードをもらいました。
もらったあとでWebで登録してクダサイネってやつでしたが…
紀伊國屋書店とか、他書店でも始めているので追従でしょうか。ポイントは100円1ポイントって感じで、50ポイント以上から使える模様。またポイントカードが増えてしまったなぁ。
こういうの、AppleのPassbookとかに入ってくれると良いんですけど。あ、iPad miniだとPassbook対応してないか。(-_-)>

今年もよろしく

昨年はなんか色々とさぼってしまって、BLOGもほぼ1年放置でした。
今年はボチボチ書きたいですねー。
やっぱり、TwitterとかFacebookでつぶやき的な吐き出しをしてしまっているせいか、BLOGに書こう!というモチベーションが上がらないのかなぁとか。
あ、そもそもMindのハッシュマップ実装作戦wも頓挫したままなので、ちょっとづつ自分プロジェクトを進めていかないとダメですね。
というわけで、でわでわ 今年もよろしくです。

【Mind】文字列をハッシュ値に変える

前回のハッシュマップもどきは、ハッシュ関数をまったくw実装していなかったので まずは文字列をハッシュ値として使える数値に変える関数というか処理単語を作ってみました。
参考にしたページはこちらです。
http://www.jamboree.jp/cms/archives/190
リンク先ではRubyで実装されていますが、Mindで実装してみました。
意味もなくハッシュテーブルの最大値は素数にしています。
http://www.atmarkit.co.jp/news/analysis/200803/24/semi.html
「素数ゼミとハッシュテーブル」
こちらで、素数のテーブルエントリー数がイイという話を読んだので ^-^)>
というわけでMindのソースはこちらです

※
※ ハッシュ値計算
※
ハッシュテーブル最大値は 数値 101。
ハッシュ値計算とは (文字列->ハッシュ値)
計算元文字列は 文字列
ハッシュ値は 変数
重み数は 変数
計算元文字列に 入れ
ハッシュ値を クリアし 
重み数へ 1を 入れ
計算元文字列の 文字数で 回数指定して
重み数が 7より 大きい
ならば 重み数に 1を 入れ
つぎに
計算元文字列から 一文字切り出し 重み数を 掛けて
ハッシュ値を 増加し
重み数を 一つ増加し
繰り返し
ハッシュ値と ハッシュテーブル最大値の 余りを 返す。
※
※ テスト用プログラム
※
ハッシュ値を計算して結果表示とは (文字列->・)
複写して 表示し
ハッシュ値計算して ","を 表示し 数値表示し 改行する。
メインとは
"abc"で ハッシュ値を計算して結果表示し
"cba"で ハッシュ値を計算して結果表示し
"bca"で ハッシュ値を計算して結果表示し
"abcdefgh"で ハッシュ値を計算して結果表示し。

【Mind】「型紙」の素振りで、なんちゃってハッシュマップ

Mind v7よりC言語の構造体みたいな「型紙」がサポートされました。
いままでの構造体は、型の定義とメモリー確保を一緒に実施してしまっていたんですがそこを分離できるそうです。そこで、その「型紙」の練習(素振り)としてなんちゃってハッシュマップを作ってみました。
連想配列とかいうやつです。awkとかでも装備されていて割と好きな機能です。JavaもコレクションライブラリにHashMapがありますし。
ただし、今回の実装はいつもどおり「なんちゃって」なので内部でハッシュ値計算していません。(だめじゃん)
それは、ほらそのうち実装するのですよ。(たぶん)
あ。あとKeyもValueも文字列しかダメです。あはははは。
ちゃんとしたハッシュマップを実装するなら、構造体のリストを作らないとだめだなぁと思い始めています。ただ、構造体ポインタみたいのを扱えるのかどうか不明なので(自分で実装かもなぁ..)まだ構想段階ですw
ハッシュ値がダブっちゃったときに配列だと都合が悪いんですよ。定義時に個数指定しなきゃダメだし。
さて、素振り結果の公開です。
いつもどおりバグバグしていると思うので雰囲気を感じてもらえると…(弱気)
今回はテストプログラムから見てもらうと、「こんなかんじ」ってところがわかってもらえそうなので、そちらから。
■テストプログラム

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※ テストプログラム
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
メインとは
ハッシュ1は 構造体 ハッシュ型
ワーク値は 文字列
ハッシュ1で ハッシュを初期化して
ハッシュ1と "key1"と "abc"で ハッシュへセットして
ハッシュ1と "key2"と "cde"で ハッシュへセットして
ハッシュ1と "key3"と "efg"で ハッシュへセットして
ハッシュ1と "key4"と "hij"で ハッシュへセットして
ハッシュ1と "key3"と "xxx"で ハッシュへセットして
ハッシュ1の ハッシュの内容を全部表示して
「-------------」を 一行表示する
ハッシュ1と "key2"で ハッシュから得て ワーク値へ 入れ
"key2"と ワーク値で ハッシュ1レコード表示する
ハッシュ1と "key5"で ハッシュから得て ワーク値へ 入れ
"key5"と ワーク値で ハッシュ1レコード表示する。

■実行結果

ハッシュカウンタ:5
"key1","abc"
"key2","cde"
"key3","xxx"
"key4","hij"
-------------
"key2","cde"
"key5","!"

■なんちゃってハッシュマップ(そのうち、ちゃんとしたい…)

※
※ 型紙のテスト ~ ★なんちゃってハッシュマップ実装
※
ハッシュ型は 型紙
ハッシュキーワードは 文字列実体
ハッシュ値は      文字列実体
ハッシュ対は ハッシュキーワードと ハッシュ値
ハッシュカウンタは       変数
全体は ハッシュカウンタと 100個の ハッシュ対。
ハッシュを初期化とは (ハッシュ型 -> ・)
処理対象ハッシュは 構造体情報
処理対象ハッシュへ 入れ
処理対象ハッシュの ハッシュカウンタに 1を 入れる。
ハッシュ値を計算とは (ハッシュ型、文字列 -> ハッシュ値)
処理対象ハッシュは 構造体情報
ワークキーワードは 文字列
ワークカウンタは 変数
処理対象ハッシュと ワークキーワードに 入れ
処理対象ハッシュの ハッシュカウンタを ワークカウンタへ 入れ
ワークカウンタを 一つ減少して
ワークカウンタで 回数指定して
処理対象ハッシュの ハッシュキーワード(回数)が ワークキーワードと 等しい文字列
ならば 回数を 返し 終わる
つぎに
繰り返す
0を 返す。
 
ハッシュへセットするとは (ハッシュ型、キーワード、値 -> ・)
処理対象ハッシュは 構造体情報
ワークカウンタは 変数
ワークキーワードは 文字列
ワーク値は 文字列
処理対象ハッシュと ワークキーワードと ワーク値へ 入れ
処理対象ハッシュと ワークキーワードで ハッシュ値を計算し ワークカウンタへ 入れ
ワークカウンタが ゼロ?
ならば
処理対象ハッシュの ハッシュカウンタを ワークカウンタへ 入れ
処理対象ハッシュの ハッシュカウンタを 一つ増加して
つぎに
処理対象ハッシュの ハッシュキーワード(ワークカウンタ)へ ワークキーワードを 入れ
処理対象ハッシュの ハッシュ値(ワークカウンタ)へ ワーク値を 入れる。
ハッシュから得るとは (ハッシュ型、キーワード -> 値)
処理対象ハッシュは 構造体情報
ワークキーワードは 文字列
ワークカウンタは    変数
処理対象ハッシュと ワークキーワードへ 入れ
処理対象ハッシュと ワークキーワードで ハッシュ値を計算し ワークカウンタへ 入れ
ワークカウンタが ゼロ?
ならば     「!」を
さもなければ 処理対象ハッシュの ハッシュ値(ワークカウンタ)を 
つぎに
返す。
ハッシュ1レコード表示とは (文字列、文字列 ->・)
ワークキーワードは 文字列
ワーク値は 文字列
ワークキーワードと ワーク値に 入れ
ワークキーワードを ダブルクォート囲んで表示して ","を 表示し
ワーク値を ダブルクォート囲んで表示して 改行する。
ハッシュの内容を全部表示とは
処理対象ハッシュは 構造体情報
ワークカウンタは 変数
処理対象ハッシュに 入れ
「ハッシュカウンタ:」を 表示して
処理対象ハッシュの ハッシュカウンタを 数値表示して 改行し
処理対象ハッシュの ハッシュカウンタを ワークカウンタに 入れ
ワークカウンタを 一つ減少し
ワークカウンタで 回数指定して
処理対象ハッシュの ハッシュキーワード(回数)と
処理対象ハッシュの ハッシュ値(回数)で ハッシュ1レコード表示して
繰り返す。