Visual Studio LightSwitch ベータ版を試す

そんな訳で、LightSwitch 英語 ベータ版がダウンロードできるようになりました。

窓の杜 – 【NEWS】ビジネスアプリケーション開発環境「Visual Studio LightSwitch」ベータ版が公開
http://www.forest.impress.co.jp/docs/news/20100824_388969.html

MSDNのほうは、もうちょっと前からダウンロードできたそうなんですが、不覚ながら今日までノータッチ。

なので、早速インストール。

20100826_01.jpg

Visual Studio LightSwitch Edition という形になっていますが、おそらく Visual Studio 2010 Shell Edition 上に実装されていると思います。

.NET Framework 4 が必要なので、結構時間がかかります(再起動もあります)。

あらかじめ作成しておいたデータベースや、テーブルを使いながら、それに合った画面を自動作成するという、Ruby on Rails のようなスタイルです。

画面は、いわゆるCRUD型が用意されています。

それにデータベースのテーブルをバインドするだけなので、単純なテーブルならば、さっくりと入出力画面ができてしまいます。

20100826_02.jpg

画面は、Siverlight 4 のアウトブラウザが使われてます。勿論、ブラウザ上で動かすことも可能。

20100826_03.jpg

このあたりのレイアウトが、どれだけデザインできるのかが、普及の焦点になると思うのですが、ひとまず、利用できる範囲を考えてみると、

  • 単純なテーブル操作(CRUD)に留めた、マスターメンテに活用
  • いわゆるユーザー画面が、一般ユーザー向きではなく、メンテするときのSE向けかと。

Visual Studio での製作は、思ったより癖があります。

普通、ノンコーディングと言うと、データベースからのドラッグ&ドロップが思い浮かぶのですが(Visual Studio 2010 でのデータセットなど)、UI が旧来のドロップダウンから選択する、という方式なんですよね。

20100826_04.jpg

これは結構悩みます。

というのも、画面を作成するときのスタイルって

  1. どのテーブルを作成するのか決める。
  2. そのテーブルに対して、どのような操作をするか決める。

の手順で作ろうとします。この流れでいくと、

  1. データベースから、特定のテーブルを選択して、ドラッグ&ドロップする。
  2. テーブルに対して、CRUDの画面を決める。

の流れがいいんです。

ASP.NET MVC でも、こんな風に、

  1. 対象のビューコンテンツ(モデル)を選択する。
  2. ビューコンテンツに対して、どのようなCRUDを行うか、選択する。

の順に上から下へになっています。

20100826_05.jpg

ですが、LightSwtich の場合は、横になっているためか、左から右へと視線が移るので、

  1. CRUDのための画面を選択する。
  2. どのテーブルに対してなのかを選択する。

の逆順になってしまうんですよね。

まぁ、まだまだベータ版ということなので、UIの向上に期待、ということで。

そうそう、書き忘れるところでしたが、

LightSwitch

って

Lights Witch

のアナグラムでしょうか?

つまりは、ストライクウィッチーズ(ストパン)なのか?

20100826_08.jpg

とか、思ったり思わなかったり。期待したりしなかったりと。

まあ、Witches しか合ってないんだけどね。一応、Google 用に(笑)。

カテゴリー: 開発 | Visual Studio LightSwitch ベータ版を試す はコメントを受け付けていません

C#とVisual Basicのコードを相互変換

.NET言語では、C#とVisual Basicが主流なのですが(傍流ではF#もあります)、ネットに流れているサンプルコードは、C#だけだったり、時には Visual Basic だけだったりします。

分野としては、

  • Visual Basic は、UI 系のtips が多い
  • C# は、ライブラリ系のtips が多い

訳ですが、片方だけで使えて、片方では使えない、というものは、ほとんどありません(仕組み的に Visual Basic で書けて、C# で書けない、というスタイルもありますが)。

なので、片方のサンプルを見つけたら、自分の使い勝手のよい方にコンバートできると楽なのです。

以前は、SharpDevelop を使っていたのですが、最近は WEB 上で変換しています。

Convert C# to VB.NET – A free code conversion tool – developer Fusion
http://www.developerfusion.com/tools/convert/csharp-to-vb/

Convert VB.NET to C# – A free code conversion tool – developer Fusion
http://www.developerfusion.com/tools/convert/vb-to-csharp/

こんな風に、クラス全体を貼りつけて、Convert ボタンを押します。

20100825_08.jpg

すると、変換されたコードのできあがり。

20100825_09.jpg

.NET Framework 2.0 までしか対応していないそうなので、無名クラスなんかがうまくできませんが、大抵のコードは大丈夫です。LINQのコードも、きちんとコンバートできているので非常に便利です。

Python や Ruby にも変換できるようですが、どれだけ変換できるのかは分かりません。

 

 

カテゴリー: ツール | C#とVisual Basicのコードを相互変換 はコメントを受け付けていません

Java Update がうっとおしいので停止させる方法

多分、知っていると思うけど、自分用のメモです。

Java Update って、うっとおしいんですよね。Windows Update も、うっとおしいんですが、ま、これは簡単に止められるし。

さて、

Java Update は、元Sun(現Oracle)が配布している Java のアップデート状態をちまちま見ます。

Windows Update よりも無害なんですが( Windows Update は、業務マシンを停止させることがあるので、自動更新はしておりません)、起動時に出てくるダイアログがなんとも。

なので、これも停止させてしまいます。

  1. コマンドプロンプトで、msconfig を起動。
  2. システム構成から、「スタートアップ」タブを開いて、「Java(TM) Paltform SE Auto Update」のチェックを外す。

20100825_07.jpg

これで Java Update が起動しなくなるので、ダイアログがでなくなります。

Adoble とか Google とかも消してもいいですね。

 

 

カテゴリー: ツール | 2件のコメント

.NET(C#)でRSSフィードを受信する

アメブロのアレ関連でもありますが、海外(英語圏)のサイトをクロールして、まとめブログを作ろうかなと。

Google のクロール目当てなので、Wordpress で立てるだけで十分なので、

手順としては、

  1. 主要な英語圏のプログラム系ブログから、RSS を受信
  2. 適当にサマリを整形して、定期的にブログにアップ

を自動化させます。

英語圏のブログを集めるのは、Google のクロールに対応するためです。このブログもそうですが、英単語(コンピュータ系の用語)が入っているブログは、結構 Google からのアクセス数があります。まぁ、ロボットのアクセスがあったところで、どうということもないのですが、アメブロのアレをするためには、ロボットであってもアクセスがあるほうがいいので。

という訳で、定期的に2,000PV/日ぐらいあるサイトを作ります。

RSS で集めるときに、PHP で書いてもいいんですが、まぁ、.NET のクライアントを作ります。

.NET には、RSS フィードのクラスがあって、

System.ServiceModel.Syndication を参照設定します。

RSS 2.0/ATOM 1.0フィードを処理するには?[3.5、C#、VB]http://www.atmarkit.co.jp/fdotnet/dotnettips/753rssfeed/rssfeed.html

を参考にして、作ったのがこれ(ほとんど同じですが)。

class Program
{
    static void Main(string[] args)
    {
        if (args.Count() != 1)
        {
            Usage();
            return;
        }
        string url = args[0];

        using (XmlReader rd = XmlReader.Create(url))
        {
            SyndicationFeed feed = SyndicationFeed.Load(rd);
            Console.WriteLine(“題名: {0}”, feed.Title.Text);
            Console.WriteLine(“詳細: {0}”, feed.Description.Text);
            foreach (SyndicationItem item in feed.Items)
            {
                Console.WriteLine(“—“);
                Console.WriteLine(“件名: {0}”, item.Title.Text);
                Console.WriteLine(“日付: {0}”, item.PublishDate.ToString());
                Console.WriteLine(“内容: {0}”, item.Summary.Text);
            }
            Console.WriteLine(“—“);
        }

    }

    static void Usage()
    {
        Console.WriteLine(“ReadRSS [URL]”);
        Console.WriteLine(“URL: RSS配信のURL”);
        return;
    }
}

引数にURLを指定して、RSSフィールドを受信します。

これをバッチにするか、常駐プログラムにするかすればOKですね。RSSリーダーを作る気はないので、UIはどうでもいいのです。DBに入れるか、XML形式で保存するか、というところです。

もう一方のブログへのアップロードですが、XML-RPCを使うか、Atom Publishing を使います。どうやら、

XML-RPC.Net
http://www.xml-rpc.net/

のライブラリを使って、さっくりと WordPress にアップロードできれば、それで十分かも、と思っています。

で、

ふと思ったのですが、アップロードを自動にするのであれば、何も wordpress などを経由する必要はないんですよね。直接 HTML を吐き出して、ftp でアップロードする、バッチを書けばいいわけで…こっちのほうが私的には簡単そう。

wordpress を利用したほうが、デザイン面でテンプレートの流用ができるのですが、今回の目的は「アメブロのアレ」のためのサイトなので、人間に対するデザインは必要ありません。

まあ、電子書籍サイトの技術調査も含めて、XML-RPC.NET を使ってみますか。ちょっと思案。

 

 

カテゴリー: 開発 | .NET(C#)でRSSフィードを受信する はコメントを受け付けていません

アメブロのアレ(あるいは、アクセス解析な話)

ここ1か月ほど、「アメブロのアレ」と称してツイッター上で呟いていたのですが、それのおまとめ。

発端は、「アメブロのランキングを上げたいなぁ」なところで、アフリエイトとか、集客とか(あるい程度はありますが)、ではないので、あしからず。単純に、アクセス数を上げて、ランキングを(ある程度まで)上げる方法を模索しております。

さて、結論から言うと、1年程前の記事が正しいです。

【アメブロのPV水増し】アクセス解析ツールごとのアクセス数の違い【パシのSEOブログ】
http://www.jweb-seo.com/blog/wordpress/2009/04/30/629

アメブロのPVが界王拳並みな件 – カイ士伝
http://blogging.from.tv/wp/2009/04/29/2046

Google Analytics とアメブロのアクセス解析を比較しています。

Goolge のほうは、アメブロより非常に低くPV(Page View)が出ます。

というのも、Google のほうは、Google などのクローラのアクセス数はカウントしませんが、アメブロのほうはクローラのアクセス数もカウントするんですね。

「アクセス解析」自体が、何を以てPVとするか?の問題はさておき、Google とアメブロの「アクセス解析」では、根底のPVの勘定の仕方が異なる、ということです。

これを踏まえた上で、いくつか実験をすると、

■アメブロでは、1回アクセスすれば1つカウントされる

これは、Google からでも百度(パイドウ)からでも同じ。誰かがちょっと間違ってクリックしても、じっくり読んでも、ロボットがやってきても1回と勘定されます。

これは、RSSにアクセスしても、ブラウザでアクセスしても同じです。

更に云えば、

  • wgetやcUrlというツールを使って、アクセスするだけでも1つ増えます。

試しに、wgetで、5秒置きに100回アクセスすると、100アクセス分上乗せされました。

■アメブロのランキングは、PVが多ければ上位になれる

アメブロにもランキングがありますが、ランキングの表示の仕方として、

  • 1位から3位
  • 1位から10位
  • 1位から50位
  • 51位から100位

という見え方の違いがあります。

私が狙うのは、「1位から50位」のところ、50位以内というページですね。

方法によっては、1位から3位、1位から10位も十分狙えるのですが、ちょっとフェアでない「方法」なので、50位位にしておきます(苦笑)。

エンジニアランキング(2,500人程度)の場合は、4000PVで10位前後、700PVで50位以内、を目安に考えてください。

そのほかの母数が多いランキングは、もうちょっと別な手段を取らないと上位に食い込めません。

50位以内を狙うというのは、一言で云えば「弱者は弱者にやさしいかも」の作戦です。アメブロには「ぺた」という機能がありますが、トップ3の著者に対して見返りを期待するよりも、50位以内のほうが期待値が高いということです。「見返り」というのは、こちらのPVをアップさせてくれるかも、ということです。

50位以下の場合は、ランキングのページから見づらい(トップ10からアクセスしづらい)という点で、アクセスアップは望めません。なので、一気に、50位以内を狙って、徐々に安定化させるのがよいでしょう。

■wgetを廻すだけで、PVが増えて、ランクアップする

という訳で、wget で廻すだけでランキングのアップが期待できます。

方法は簡単です。50位以内が狙える、700PV分だけ廻してしまえばよいのです。

$url = ‘http://ameblo.jp/アメブロID/’;
for ( $i=0; $i<10; $i++ ) {
 `wget $url`;
 sleep(30);
}

こんな風に簡単な perl スクリプトを使って、ぐるぐる廻してしまうだけでPVがアップ、かつ、ランキングがアップできます。

■もう一工夫して、iframeを使う

wget の方法ですが、ちょっと難点があります。

1つだけのマシンからアクセスをするので、IPアドレスが同じなんですよね。なので、「アクセス者数」が少なくて、いっぺんにばれてしまいます。

# 運営サイドにばれるというか、自分以外は見れないので、どうでもいいんですが。

また、毎日 wget のスクリプトを廻さないといけないので、ちょっとむなしいですね。いえ、PVだけを自分で廻すという行為自体が「むなしい」のは、さておき(苦笑)。

アメブロ以外に、そこそこアクセスのあるブログを持っていれば、iframeを使うという方法があります。

ここのブログのソースを見ると、

<iframe src=”http://ameblo.jp/アメブロID/” width=”1″ height=”1″ scrolling=”no”>
</iframe>

な記述がありますね。

こうすることで、このブログのアクセス数を、そのままアメブロのアクセス数に加算することができます。

試してみると、都合よく、Google のクローラのアクセスもアメブロに加算してくれるので、結構簡単にアクセスアップができます。更に云えば、Google クローラの IP が使われるため、「アクセス者数」もアップするんですね。

ちなみに、自分のカウント用に、特定ページを設けておくと、二重帳簿の元ネタが分かるようになります。

■アメブロのペタはランキングに関係ない

さて、一般的にアメブロのランキングを上げるためには、

  • 読者を増やす
  • アメブロのペタをたくさん貰う

という話がありますが(運営サイドからも)、実験をすると関係ないことが分かります。

というのも、ペタのお返しをする自動ペタツールというのが結構ありまして、これはペタを直接打つんです。

問題は、アメブロのPVには、ルームの閲覧は加算されていない、ってことです。

これは、どういう事かというと、自動ペタツールを作ってみた分かったことなのですが、

  1. 自動ペタツールを使う。
  2. ルームから「ペタ」のリンクを辿る。
  3. ペタのページから、クリックをエミュレートする。

という方法でツールは成り立っています。

ここで、1や2のページは、PVにはカウントされません。故に、アクセス解析にも出ません。故に、ランキングに無関係なのです(今後の方針で変わるかもしれませんが)。

ということは、実は、

読者はペタを沢山増やしたとしても、ルームなどから直接ペタをしたときには、ランキングに貢献しない。

という結論になります。

きちんと、ブログを読んで、ペタをしている方には効果があるのですが、自動ツールはこのような問題(?)があります。

■更新回数を増やせばランキングがあがる

という訳で、アメブロの更新回数を単純に増やせば、ランキングは単純に上がります。

これは、

  1. 更新回数を増やす。
  2. Google のクローラがPVを増やす。
  3. PVが直接、ランキングに反映される。

という流れで、ランクが上がります。

なので、SEO対策としては、人相手ではなく Google のような機械相手にやればOKってことです。

~~

ちょっと長くなったので、効果的なアクセスアップの方法は後日。

今、私が取っている戦略としては、

  1. iframeで下駄を履かせて、50位以内にする。
  2. 50位以内をキープして、見返りを求める(ペタとか、でもランキングに関係ない)。
  3. 更新回数を徐々に増やす。
  4. 英単語、コンピュータ用語を交えて、アクセスアップ

なところです。

4ですが、Google のクローラと関係してくるところです。

 

カテゴリー: 雑談 | アメブロのアレ(あるいは、アクセス解析な話) はコメントを受け付けていません

粘菌コンピュータについて思考実験(2)

粘菌コンピュータの続きを20分ほど。

時間に関して決定的な解決ができる場合と、決定的でない解決の場合の2種類があるわけです。

数学的に言うと、

「発散」、「収束」がありますね。よくやる n を無限大にすると、収束する、という計算です。

nを無限大という条件自体は、時間である t を無限大にする、という計算にも置き換えられます。

さて、この数学的に収束する場合ですが、実は3種類あります。

発散と、収束と、振動ですね。

(「振動」だったかどうか、ちょっと覚えていないのですが、この用語は後で調べるとして)、

発散の場合は、t を無限大にしても、値が特定できないパターンです。

一般的な発散の式も当てはまりますが、複雑系のようなバタフライ効果も、これに当てはまります。

収束の場合は、逆に t を無限大にすると、ひとつの値に定まるパターンです。

これは、t が無限大という点で、無限時間ということになりますが、実際に計算するという事実とは離れて、「計算可能」という範囲で、値が定まる、というパターンも含めます。

これが示しているところは、

1/t の t → 無限大 は、容易に 0 と推測できます(あるいは、証明もできます)。

更に、

円周率 π は、一定の値である(発散しない)という計算も、求められます。

ご存じのとおり、π の値は、3.141592… と延々に続くわけですが、πという仮想的な値に定まる、ということは証明がつくわけです。

# 余談を云えば、10進数では、πの値は、3.14… になりますが、π進数では、1 ですね、という話です。

さて、もうひとつは、振動の例です。

この振動の例は、簡単なものがあって、

sin ( t ) の場合、t を無限大にした時は、どうなるかというと、不定 … いや、1から-1間に特定できます。

これは、発散とは違って、予測可能ではあるが、その時の値は特定できない、というパターンです。

予測可能であるが、その時刻には特定できない、ということは、無限大の時間空間の中で、ある時刻の値は特定できるが、ある時刻自体が非決定(あるいは、揺らぎがある)という場合には、値そのものは決定的ではない、ということを示し、かつ、おおざっぱなところでは比較的決定的であるという、少し不思議なパターンになります。

この例は、卑近なところでは、ニュートン力学と量子力学の関係になります。

例えば、

ボールを投げたときの着地点は、ニュートン力学において、決定的です。

ですが、空気抵抗などの揺らぎを考慮すると、量子力学的に、不定になります。

この狭間は、一見非連続に見えますが、実は連続的なものです。

非連続というのは、ニュートン力学から量子力学の分野の計算になった、という点で非連続的に見えるのですが、物体そのものが変化をしない(ボールという物体そのものは、観察者に関わらず、ひとつである … という仮定ではありますがw)、ので、物体という軸においては、連続的という訳です。

勿論、量子力学で学ぶ、「観察者」の存在は重々承知しているわけですが。

そんな訳で、

計算をしても発散してしまう問題。

計算をしていけば収束する(あるいは、数学的に収束が証明できる)

という分野とは別に、

計算していくけど、大ざっぱには求められるが、厳密には求められない、という量子力学風な(というのか、複雑系な)話がでてきます。

ああ、粘菌コンピュータの話になかなかつながりませんが、もう少しで辿り着く予定です。

 

 

カテゴリー: 雑談 | 粘菌コンピュータについて思考実験(2) はコメントを受け付けていません

Visual Studio 2010 のヘルプが使いづらい

巷で話題になっておりますが(一部ね、一部)、Visual Studio 2010 のヘルプが使いづらいのです。

VS2010のヘルプは使いにくい、使えないレベル。せめて2008時代のようなUIをお願いします。 | Microsoft Connect
http://connect.microsoft.com/VisualStudioJapan/feedback/details/560247/vs2010-2008-ui

私も「ひと目でわかる Visual C++ 2010」を書いたときに思っていたのですが(書籍では、あえてぼかしております)、いやぁ、ネットに直接アクセスしに行くのはちょっと … と思っています。一応、MSDN ドキュメントのインストール時に、ローカルに保存することはできるんですが、2008 のような Help Viewer が立ち上がるのではなく、IEが立ち上がります。

で、いくつかコーディングしていくと、意外と精度が悪いんですよね。

変な処に行きついてしまうのが問題です。

先の Microsoft Connect の回答では、本社のmicrosoftさんから回答が来ているので、英語版のヘルプツールしか得られず、日本語版の Windows には入れられません。

Microsoft Help Viewer Power Tool (Beta) – Home
http://code.msdn.microsoft.com/HelpViewerPowerTool

20100818_02.jpg

ダウンロードしてインストールしようとすると、下記のようなエラーが出ます。

20100818_01.jpg

提供元自体が、2010年5月のベータ版で止まっているので、お勧めもできません。

という訳で、先の Connect にもありますが、GrapeCity さんが提供されています。

GrapeCity ヘルプビューワ
http://visualstudiogallery.msdn.microsoft.com/ja-jp/81bc1785-2e39-49a5-9beb-8443e88ef159?SRC=Home

は、どうでしょう?

20100818_03.jpg

ダウンロードしてから、インストール。

が、インストールしたけど、さてどうしたものか…スタートメニューには出ないし、な感じでお困りだったわけですが。

C:\Program Files\GrapeCity HelpViewer\ の中にある Readme.txt を見ると

(このファイルを、インストーラが開いてくれないのは問題だと思うんですが)

[起動方法]

Visual Studio 2010のメニューから[表示]-[その他のウィンドウ]を選択し、
その中から「GrapeCity ヘルプビューワ」を選択してください。
「GrapeCity ヘルプビューワ」ツールウィンドウが表示されます。

となっていますね。Visual Studio 2010 上から動かすようです。

で、動かしてみると、

20100818_04.jpg

真っ白、って、、、ああ、なるほど、

ローカルヘルプにしないと駄目 orz

なんですね。

なんか、Visual Studio 2005、SQL Server 2008 R2 Express Edition まわりで、再インストールをしたので、ドキュメントはインターネットになっている訳で。

これをローカルに切り替えるには、「ヘルプ」-「ヘルプ設定の管理」を選択して、

20100818_05.jpg

「オンラインまたはローカルヘルプの選択」で変えればOK。

20100818_06.jpg

20100818_07.jpg

そうすると、無事 Visual Studio 2010 でヘルプが表示できます。

20100818_08.jpg

ああ、一見落着な気がする訳ですが、いいえ、全然駄目なのです。

テキスト検索やら、キーワード抽出やらはできるのですが、肝心の

  • キーワードで「F1」キーを押すと、MS謹製のブラウザに飛んでしまう。
  • 肝心の、目次の同期などが一切できない。

のです。う~む。

ここは素直に、

Visual Studio 2005 をインストールして、Help だけ使うのがよいか

と、思ったり。

# C++/CLI のインテリセンスが使えないから、Visual Studio 2005 は必須なんですけどね。

追記 2010/08/19

GrapeCity の Yamaki さんからの直接コメント

Yuya Yamaki’s blog
http://d.hatena.ne.jp/Yamaki/

おお、「目次の同期」ボタンがあるじゃないですかッ!!!

20100819_01.jpg

こんな大事なことを Readme に書き忘れてはいけませぬッ!!! <偉そうに

という訳で、しばらくこれで運用します。

 

カテゴリー: 開発, ツール | 3件のコメント

mac mini + VNC Viewer + WinDeskWide の環境で

20100817_09.jpg

mac mini が届いたので、セッティングしました。

セッティングと言っても、非常に簡単ですね。最近のWindowsマシンもそうですが、あらかじめOSが入っているので、電源を入れてユーザー名を入れるだけで、10分弱ぐらいで動きます。

で、

私の環境は、主にWindows 7なので、これと mac mini をセットで動かします。

本来ならば mac 用の display を用意したいところなのですが、当面は、iPad のアプリ(ちなみに iPhone は持っていません)を作る予定なので、リモートデスクトップで十分かな、と。

SE奮闘記: 【Mac】WindowsからMacにリモート接続(画面共有)する
http://se-suganuma.blogspot.com/2009/10/macwindowsmac.html

を参考にして、Windows から Mac にリモート接続します。

VNC Viewer は Vector から落としたものを使いました。

RealVNC日本語インストール版の詳細情報 : Vector ソフトを探す!
http://www.vector.co.jp/soft/win95/net/se324464.html

IPアドレスか、ホスト名を指定して

20100817_10.jpg

mac mini 側で設定したパスワードを入れるだけです。

20100817_11.jpg

これを使うと、十分なスピードで動きますね。無線LAN経由だと結構ぎこちないのですが、有線LAN (1Gbps)にしていまうと、遜色ないマウスの動きをします。

VNC 経由になるので、ウィンドウを移動するときの動きが少しパタパタしますが、プログラミングには、これで十分。

さて、このままでもいいんですが、VNC Viewer は全画面で使いたいので、もうちょっと工夫します。

Linux を使っていると、仮想画面が普通に使えますよね。Ubuntu だと、4画面とか。

それを、Windows マシンで行うのが、WinDeskWide です。

WinDeskWide
http://bluecard.no-ip.com/freeware/WinDeskWide/

最新版が、ver.1.3.1 なのですが、どうもうちの環境では、良く落ちるので、ver.1.3.0 を使っています。

20100817_12.jpg

こんな風に、左下に切り替えの画面が出てきます。

私は、横一列で3画面にして使っています。

左から、作業用、twitter用(笑)、mac mini 用ですね。

設定画面で、「マウスを使用して…」にチェックを入れると、マウスが画面の端に来た時に自動的に次の仮想画面に移ります。これが結構便利です。

20100817_13.jpg

こういう風に、仮想画面に VNC Viewer を割り当てておけば、mac が全画面で使えるって訳です。

 

 

カテゴリー: ツール | mac mini + VNC Viewer + WinDeskWide の環境で はコメントを受け付けていません

粘菌コンピュータについて思考実験(1)

粘菌コンピュータで、少し思考実験。

粘菌コンピュータとは言っても、別に未来な話ではなくて、現実にある話で、

粘菌コンピュータ – Wikipedia
http://ja.wikipedia.org/wiki/%E7%B2%98%E8%8F%8C%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF

なところで、真面目に研究しています。

生物学の有機的な話と、コンピュータの無機的な話をつながるのは、結構昔からあって、初出であれば「ライフゲーム」です。

ライフゲーム – Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC%E3%83%A0

ライフゲームと、粘菌コンピュータの似ているところは、

  • ルールが単純なところ(あるいは、単純なルールがあるところ)
  • それぞれの個体が独立して動くところ

にあります。

正確に言えば、ライフゲームは場自体にルールがあって、それ上を点が動くので、点の集まりが生物である(多細胞、あるいは、多分子という意味で)、粘菌とは若干違うのですが、ライフゲームの子孫が、「エージェントシステム」に、伝わっているので、結構関連がある話です。

マルチエージェントシステム – Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0

このエージェントシステム(マルチエージェントシステム)は、個体にルールを持たせてシミュレーションをしようという考え方で、場全体をモデルに当てはめて多項式なんかで解く方法(パズルの解法や、巡回セールスマン問題なんてのがそう)とは違って、予想できない結果が得られる(あるいは得てしまう)という点で、普通のコンピューティングとは違っています。

このあたりを、ちょっと図にすると、通常のコンピュータ(アルゴリズム)による解法はこんな感じ。

20100816_08.jpg

とある、場があって、その中にある個々の相互作用を一度に計算します。

解法上、時間軸に依存しないことが多いので、その時点の解答が得られます。

… って、何のことを言っているか分かりませんね(汗

例えば、2+3の答えば、常に5ですよね。

これは、1年後でも100万年後でも同じ。

これが、時間軸に依存しない解答という訳です。絶対的に決まるって奴ですね。

と、

逆に、時間軸に依存する解答というものがあります。

こんな風に、とある注目する物体との相互作用のみを観察します。

20100816_09.jpg

場は、注目する個体との相互作用の集合、という概念ですね。

これが先に話した「エージェント」という話です。

さきほどは、場自体が決まっていたわけですが、今回は、場は個体に依存します。

だから、場を無限に広げれば、個体は同じ動作をするって訳(ライフゲームとか)なんですが、まあ、それはさておき。

これが、どうして時間軸に依存するの?というのは、

とある個体(A)と、相互作用のある(B)という個体の関係は、

  • AからBへの作用
  • BからAへの作用

という計算による算出できるわけですが、エージェントによるコンピューティングの場合は、この作用の順序は、交換不可能なんですよ。

ええと、数式で表せば、

A・B ≠ B・A

ですね。

作用する順序が異なると、結果が異なる。

数学をちょっとやった方ならば「行列」の掛け算を思い出すといいです。

これ、先の「2+3」のような話で言えば、

A・B = B・A

な訳です。交換可能な式。

この違いがなんなのですか?

という話は、つまりは、AにBを掛けるか、BにAを掛けるかという、「順序」の違いなんですね。

後なのか、先なのかという問題。

つまりは、「時間」の問題になるわけです。

そういう訳で、場を中心にしたアルゴリズムは、時間に関係なく計算できるわけですが、エージェントを利用した場合は、時間によって解答が違うわけです。相互作用が時間に依存しているためです。

・・・粘菌コンピュータになかなか繋がりませんが、ひとまず休憩。

 

カテゴリー: 雑談 | 3件のコメント

加工した画像を Excel でさっくりと作る

見積本舗のブログアップを図る頃に思いついた技を少し紹介します。

最近のブログはセンスがいいトップ画像が張ってあって綺麗ですよね。

ここのブログはテンプレートそのまま、なのですが、ちょっとばかり文字を入れてありますが、ちょっと前まではテンプレートのままでした。

こんな風なのを作るのは、昔はPhotoshopなりを買って、色々やらないと駄目だったのですが、実はExcelでもできます。

↓のキャプチャを見てください。

20100812_01.jpg

ほら、立派に Excel でしょ。これは、Excel 2010 ですが、Excel 2007 でも可能です。

それ以前の Excel でも可能なのは可能なのですが、フォントとかが不足しているので、2007以降がいいですね。

左上の文字は、ワードアートを使っています。

20100812_02.jpg

で、画像のキャプチャなんですが、あまり知られていない技がありまして、↓な風に、Excel で選択をしてから【Ctrl+C】でコピーすればクリップボードに転送されます。

20100812_03.jpg

後は、IrfanView を使って、切り取ればOK。

20100812_04.jpg

ブログにアップする時は、jpeg形式で圧縮しているために少し画質が悪いですが、png形式でアップすればOKです。タイトル画面なんかは、縮小せずに作業するといいですね。

これ位であれば、さっくりと自作で十分。

という小技です。

カテゴリー: ツール | 加工した画像を Excel でさっくりと作る はコメントを受け付けていません