2008-07-28[n年前へ]
■ニッチなニッチな個人サーバ構成を図解する
下の図は、「ニッチなニッチな個人サーバ」の構成を図解になります。何が「ニッチなニッチ」かというと、個人でサーバを動かしていて・ソフトウェアやネットワークとはほぼ無縁の生活をしていて(何しろApacheの綴りをすべてApachと間違えて書いているくらいです)・それでいて、コンテンツ提供のサーバソフトを自分でいじったりしている・・・という状況を、とりあえず「ニッチ」としてみたのです。
hirax.netはそんな「ニッチなニッチな個人サーバ」であるわけですが、そのサーバ構成をふと図解してみました。というのは、あまりにサーバ構成がツギハギだらけになってきて、自サーバを整理するために、サーバ間の繋がり・関係を(自分のために)図解してみたのです。
hirax.netは現状4台のサーバで動いています。「大容量ファイル配信」「小さな静的ファイル配信」「メインコンテンツ配信用のRailsアプリを動かす mongrelクラスタ」「いくつかの実験サービスを動かすRails アプリを動かすmongrelクラスタ」「SQLサーバ」「各種数値演算用サーバ」「画像処理サーバ」といったもを、それぞれのPCに役割分散することで動いています。役割分散させると管理が面倒なので、いずれは、まったく同じ機能・同じ構成の仮想サーバにでも処理を分散させるようにしたいのですが、なかなか、そんな再構築作業ができないでいます。
そもそも、「ニッチなニッチな個人サーバ」ですから、そんな増改築は本来必要でないように思いますが、遊びがてら色々増改築を繰り返してきた結果、こんな古い温泉街の老舗ホテルのような、あるいは、四国かどこかにあるという「軍艦島マンション」のような入り組んだ手作りサーバ構成になってしまいました。
「Rails入門書を読んだ勢いで、個人サーバ用のアプリをRailsで書いて、自アプリでサーバ運用する人」も少なくないだろう、と思います。便利なブログツールやサーバもたくさんあるわけですが、(素人ながらも)自分で何か作ってみたくなり、適当に動かしている人もチラホラいるだろう、と思います。そんな「素人が手軽に動かすことができるお手軽・気軽なサーバ構成」は、一体どういうものなんでしょうか。他の方々のサーバは「軍艦島マンション」構成にはなってはいないものなのでしょうか……。
2009-10-03[n年前へ]
■「IronRuby」+「Mathematica Player」=「∞の可能性」
まだまだ、「(.NETで動くRubyである)IronRubyと(無料配布されている)Mathematica Playerの組み合わせ技」にハマっています。素晴らしく楽しく使うことができる言語環境Mathematicaと、やはり素晴らしく便利なRubyと、そして(多分便利な).NETを一緒に用いることができるというのは、とてもエキサイティングな体験だからです。
今日は、まずは「Mathematicaの使い方」を眺めながら、クラスタ分析をIronRuby+Mathematica Playerでなぞってみました。
include System require 'Wolfram.NETLink' include Wolfram::NETLink kernelLink=MathLinkFactory.CreateKernelLink() kernelLink.WaitAndDiscardAnswer() result=kernelLink.EvaluateToOutputForm( 'datarecords = { {"Joe", "Smith", 158, 64.4}, {"Mary", "Davis", 137, 64.4}, {"Bob", "Lewis", 141, 62.8}, {"John", "Thompson", 235, 71.1}, {"Lewis", "Black", 225, 71.4}, {"Sally", "Jones", 168, 62.}, {"Tom", "Smith", 243, 70.9}, {"Jane", "Doe", 225, 71.4}};', 0) result=kernelLink.EvaluateToOutputForm( 'FindClusters[Drop[datarecords, None, {1, 2}] -> datarecords]', 0) puts result kernelLink.closeこうコードを書くと、各人の身長と体重のデータを用いて、それらの人を何グループかにクラスタリングを行うことが簡単にできます。たとえば、こんな結果が返ってきます。
{{{Joe, Smith, 158, 64.4}, {Mary,Davis, 137, 64.4}, {Bob, Lewis, 141, 62.8},{Sally, Jones, 168, 62.}}, {{John,Thompson, 235, 71.1}, {Lewis, Black, 225, 71.4}, {Tom, Smith, 243,70.9}, {Jane, Doe, 225, 71.4}}}見事にクラスタリングされています。もちろん、これは、Mathematicaのマニュアルそのままのコードです。けれどそんな処理をRubyで行うことができて、その結果をRubyでさらに使うことができるのはとても便利です。
あるいは、
include System require 'Wolfram.NETLink' include Wolfram::NETLink kernelLink=MathLinkFactory.CreateKernelLink() kernelLink.WaitAndDiscardAnswer() result=kernelLink.EvaluateToOutputForm( 'FindShortestTour[ {{4, 3}, {1, 1}, {2, 3}, {3, -5}, {-1, 2}, {3, 4}}]', 0) puts result kernelLink.closeなんていうコードを書けば、二次元座標群を「どうすれば最短時間(距離)で巡ることができるか?」という巡回セールスマン問題を解くことができます。もちろん、答えはすぐ返ってきて、
{11 + Sqrt[2] + Sqrt[5] + 3 Sqrt[10], {1, 3, 5, 2, 4, 6}}というように、「最短距離」と「どのように点(都市)を廻れば良いか」がたちどころにわかります。
クラスタ分析、巡回セールスマン問題・・・ありとあらゆる問題を、IronRubyとMathematica Playerのタッグは解いてくれます。「IronRuby」+「Mathematica Player」を使っていると、「∞の可能性」を実現できるような「錯覚」を覚えます
2009-10-15[n年前へ]
■「身長・体重・スリーサイズ」で「今昔アイドル」をクラスタリングしてみよう
最近、色々挑戦してみた結果、(無料の)Mathematica Playerと(.NET実装の)Iron Rubyを使ってさまざまなことができるようになりました。今回は「体重を公表しているアイドルのスリーサイズ」のデータを使い、「身長(cm)、体重(kg)、B(cm)、W(cm)、H(cm)」を特徴量として、「アイドル」をクラスタリングしてみることにしました。使う関数は、MathematicaのFindClustersです。具体的なコードを、簡単のために(Player版ではない)Mathematicaで書くと、
data = Flatten[ Import["c:\\actress.xls"], 1]; data2 = Drop[data, None, {1}]; FindClusters[data2 -> data, 10]という具合です。これで、「アイドル」が特徴が似ている10グループに分類されます。
ちなみに、結果は、こんな感じです。カッコ{}で囲まれているのが、似ているグループ=クラスタです。
{{{川崎カイヤ,藤原紀香,斎藤陽子,かたせ梨乃,児島明子,山田誉子,}{松島菜々子,高見恭 子,大沢逸美,浅野ゆう子,波乃ひろみ,辺見えみり,青田典子,}{神田うの,松下由樹,吹石一 恵,大石恵,遠藤久美子,内田友紀,田中美里,}{一色紗英,飯島直子,瀬戸朝香,井上晴美,渡 辺満里奈,飯星景子,吉本多香美,高岡早紀,深田恭子,}{水野美紀,伊藤絹子,生田智子,西田 ひかる,松原千明,樹まり子,}{細川ふみえ,駒木なおみ,岩崎ひろみ,加山なつ子,梨花,}{石 田ゆり子,雛形あきこ,三井ゆり,東ちずる,水野真紀,ビビアンスー,}{桜庭あつこ,中條か な子,舞坂ゆい,斎藤由貴,飯島愛,嘉門洋子,有賀美穂,アグネス・ラム,武田久美子,工藤ひ とみ,}{石田ひかり,菅野美穂,井森美幸,沢口靖子,石田ひかり,古手川裕子,河合奈保子,マ ルシア,原日出子,小泉今日子,松本明子,}{桂木真理子,安西ひろこ,奥村チヨ,岩崎良美,柏 原芳恵,石田えり,五月みどり,吉沢京子,島崎和歌子,榊原郁恵,山田まりあ,}}}もちろん、このクラスタリングは、「身長(cm)、体重(kg)、B(cm)、W(cm)、H(cm)」で行ったものですから、体型でのグループ分けにすぎません。けれど、こうして眺めてみると、なんだか特徴が出てくるような気がするようにも思えます。
けれど、そんな体型というものも、アイドルにとってはきっと重要なファクターであるはずです。また同時に、このデータには、さまざまな時代のアイドルが混じっています。しかし、だからこそ、「あぁ、なるほど、この(今の)アイドルとかつてのあのアイドルは立ち位置が似ているんだな」と、「身長(cm)、体重(kg)、B(cm)、W(cm)、H(cm)」だけからも想像できたりするかもしれません。
さて、あなたの好きな「アイドル・クラスタ」は一体どのクラスタでしょうか? もちろん、まだまだ俳優編・声優編などなど、色々試してみようと思います。
2009-11-15[n年前へ]
■クラスタで計算可能なスーパーコンピュータ向け「Excel」を開発中
「MS、スーパーコンピュータ向け「Excel」を開発中--クラスタで計算可能に」
Microsoftは米国時間11月16日、スーパーコンピューティング分野の主要なカンファレンスにおいて、強力なクラスタサーバ向けに再設計された「Excel」スプレッドシートのテスト版を発表した。
クラスタ上でのExcelのパフォーマンス改良を進めることで、通常ならば計算に数週間を要していたようなスプレッドシートでも、わずか数時間で稼動するようになると、Microsoftは説明している。
2012-10-16[n年前へ]
■身長とスリーサイズでアイドルをクラスタリングしてみよう!?
「アイドルプロフィール(スリーサイズ、カップ情報)」のデータを使い、各アイドルを「身長・B・W・H」という4次元情報をもとにクラスタリング(クラスタ分析)してみました。登場するアイドルは総勢395人!ということで、解析した結果はテキストファイルとしてここ(idolClusters.txt)に置いておきます。
20クラスタほどに「分けて」はみたものの、果たして「上手く分かれている」のか「ほどよく分かれているわけでないのか」…それが全くわかりません。アイドルの顔を見ることはあっても、あまり身長やスリーサイズは眺めたり意識したりといったことをしていないのかもしれません。
{{{"逢沢りな"}, {"岡安麗奈"}, {"川村虹花"}, {"小池里奈"}, {"小池凛"}, {"指原莉乃"}, {"澤田リサ"}, {"志田友美"}, {"高柳明音"}, {"久本彩奈"}, {"渡辺麻友"}, {"黒川智花"}, {"酒井萌衣"}, {"戸田恵梨香"}, {"中田彩"}, {"平嶋夏海"}, {"福田沙紀"}, {"前田敦子"}, {"前田希美"}, {"松井玲奈"}, …(中略)…{"七色あん"}, {"MARI"}, {"中川朋美"}, {"水樹たま"}}}
ざっと眺めると、"MEGUMI"や"手島優"は、同じクラスタ(グループ)だと自然に納得できますが、これは「アイドル」とはいっても「グラビアアイドル」という属性を持つがためにスリーサイズ的なイメージが頭に浮かぶ、のかもしれません。