F# ドキュメント翻訳向上委員会(仮)を始めました

趣味のOCaml – F# 日本語ドキュメント
http://d.hatena.ne.jp/taka-island/20100424/1272096524

なところで、コメントを書きましたが、MSDNライブラリの Visual F# の翻訳がアレなので、wiki を立てました。

MSDN – Visual F#
http://msdn.microsoft.com/ja-jp/library/dd233154%28v=VS.100%29.aspx

F# 日本語ドキュメント Wiki
http://moonmile.net/fsdoc/

# Wiki のほうは、もう少し目的が明確な名前にするかな?

このあたりの主旨/流れとしては、

  1. Visual Studio 2010 から F# と呼ばれる関数言語が導入された。
  2. F# は OCaml の方言である。
  3. F# のドキュメントは主に英語で、日本語はほとんどない。
  4. F# に関するブログも数か所しかない(盛り上がりに欠ける)。

なところで、一方で関数言語としては、Haskell や Scala があるのですが、まあ、個人的に .NET系を触る機会が多いので、Visual F# です。

# そう言えば、「Visual F#」となっているけど、現状、Visual Studio 2010 では、F# の Windows アプリケーションのプロジェクトテンプレートがありません。なので、「Visual」を冠するのは、いつわりですよね~。まあ、手打ちでがしがしやるか、UI を C# で作るのがベターです。

さて、わからんときは英語を読む。日本語の先行ブログを読む、でもいいんですが、ちょっと「オブジェクト指向脳」の方には、かなりハマります(悪い意味で)。きちんと、関数言語の意図がわかっていないと、forループを連発してしまうコードを書きます。

まあ、それでもいいんですが、どうせならば、最初の関数言語の意図とは何だったのか?を抑えて、勉強なり翻訳なりをしたいですよね。

なので、

「関数プログラミング」P.バード、P.ワドラー
http://www.amazon.co.jp/dp/4764901811

を買いました(苦笑)。

これは大学の教科書に使うようなものなのですが、出版が1991年になっています。

原著を見ると、

http://www.amazon.com/dp/0134841891

1988年に出版されています。

C++の発祥が1983年、Modula-2が1978年頃なので、オブジェクト指向とほぼ同時期に発想されているんですね。

# 元ネタは、Lisp だろうから、もっと前なんだろうけど。

そうなると、F# や OCaml を学ぶ時には、関数言語 → オブジェクト指向 の流れで味付けをしいと駄目なわけで、このあたりがずれてしまうと、.NET で関数言語がメインとして使えるメリットが薄れてしまうのです。

逆な言い方をすれば、LINQ は関数言語の良いところを取り入れていますが、

  1. オブジェクト指向として C# を学ぶ → 味付けとして LINQ を学ぶ。
  2. データアクセス言語として LINQ を学ぶ → オブジェクト指向として C# を学ぶ。

のように、2のほうでは相当違和感があるわけです。普通は1の方法で学びます。

 

ここで、何でここに至るのかと言うと、実は2週間ほどF#を弄ってみたわけです。タプルやらリストやら、Lispを知っているので、このあたりはなんとかなんですが、どうもその後はオブジェクト指向に引っ張られるんですよね。OCaml や Haskell のサイトを見て、似た関数を作ろうとおもうけど、私にとっては、C# で書いたほうが楽、ってな感じで、どーしようかなぁ、ってな感じだったのです。

それで仕方がない。初心に帰って勉強するか、ってな具合になって池袋のジュンク堂へ。他の関数言語をちらちら見て、F#の洋書を手にとって、そして目についたのが「関数プログラミング」です。ぱらぱら見て、数式が出てくるのでこれならば良さそう(関数言語=数学で使う、という知識はあったので)、ってんで1階レジへれっつらごー!(死語w)。

レジで「4,400円になります」って言葉に「うっ」ってなりましたが、仕方がない買う、ってなもんです。

1ヵ月間勉強したんですが、これが面白い。抜群に面白いし、どうして関数言語が生まれるのか、がびっしりと書いてあります。いや、実際のところは OCaml や Haskell よりも前に書かれていて、F# なんて影も形もありません。付録には Miranda というプログラム言語の例があります。

まあ、そんな訳で、F# の用語を、

  • 一般的な関数言語の用語に統一
  • OCaml の用語と統一

とするなら、やぶさかではない、って具合です(偉そう…)。

カテゴリー: 開発 | 1件のコメント

Twitter 前夜祭 in 板橋

ひそかに’Twitterではおおっぴらに)準備していましたが、公開します。

Twitter で始まる板橋の夜明け

http://itatr.com

ということで「前夜祭」をやります。

一応、ツイッター講座の前振り(集客目的)なのですが、まあ「お祭り」的な感じでやります。

日時: 2010年5月17日(月) 18:00~

場所: 和民 板橋西口店

です。募集人数はいまのところ「無制限」。ってな感じで募集していきます。

# 和民さんの部屋が最大40名なので、それぐらいが上限ですね。

今回、和民さんに Wi-Fi が導入されるということで、声を掛けさせて頂きました。当日、Wi-Fi が間に合うのか、間に合わないのかは、ソフトバンクさん次第ということでw、まあ、見切り発車。

  • 株式会社プリンシパルの塚越さんを招いて、初級的から、営業ツールとしての話を
  • 今回のサイトのアクセス数などを、経緯を交えて、時系列で説明

など、したいと思います。

ぜひ、お誘いあわせの上、いらっしゃってください~。

http://itatr.com から応募フォームを使うか、ツイッターで @teamitabashi にダイレクトメッセージしてください。

カテゴリー: 起業塾 | Twitter 前夜祭 in 板橋 はコメントを受け付けていません

C++/CLIにインテリセンスが必須な理由

Visual Studio 2010 の C++/CLI ではインテリセンスが効かないのです。

C++では、効くし、最新情報にある通り結構早くなっています(最初にヘッダファイル等を読み込んでデータベース化するところは相変わらずなんですが)。

さて、これを /clr スイッチを付けて、C++/CLI として使おうとすると、全く駄目。C++ 側のインテリセンスも、.NET側のインテリセンスも両方が効きません。全く、昔の vi で組んでいた状態に戻ります。

このインテリセンスの機能、C++/CLIで使えないのは、.NET Framwork を選択するという点でも結構致命的なのです。

それをいくつか説明しましょう。

 

■C++で組むときにインテリセンスがでない

MFCで組む時には出てたインテリセンスが、C++/CLIでは出ない訳ですから、かなり不便です。ただし、不便とはいえ、C++ のヘッダファイルを参照すれば、(かなり面倒ですが)クラス名から関数名を割り出すことができます。

ただし、Visual C++ 6.0 の頃から出ていたもの(10年前)以前に逆戻りというのは、かなり開発効率が落ちるでしょう。

なので、C++/CLI のコンパイラを捨てて、C++ だけでコンパイルするでしょうね。

そうなると、MFC でのインテリセンスも使えるのでうまくできます。

 

■.NETとしてC++/CLIを使う場合に困る

C#やVisual Basicで出ていたインテリセンスが出ないので、結構困ります、、、が、ヘルプを参照すれば何とかコーディングができるでしょう。

しかし、.NET FrameworkでWindowsアプリを組む場合、C++/CLIだけで組むことは皆無でしょう。C#やVisual Basicを選択しますよね。

C++/CLIで作る場合は、学習用か趣味のときぐらいです。

また、C++/CLIで使い勝手が悪かったら、C#やVisual Basicを使えばいいだけです。

 

■ハブとしてC++/CLIを使う場合に、致命的

さて、これが一番の問題です。

C++/CLIの使いどころは、実は既存のC/C++ライブラリと.NETアプリケーションを媒介するところなのです。例えば、OpenCV という画像解析用のライブラリがありますが、これはC++で書かれています。このために、ライブラリを利用するためには、C++の呼び出し(あるいは専用に用意されたC言語呼び出し)が必要になります。

ご存じのとおり、C#やVisual Basicではポインタが扱えません。正確に言えば、C#でboxingを使えば、ポインタを使えるのですが非推奨の機能です。また、適切な呼び出しの属性を付ければ、C#からC言語で作られたDLLを呼び出すことができますが、結構手間です。

さて、この場合は、C言語のライブラリに適当なC++/CLIのラッパを作ります。

つまり、

C言語 → C++/CLI → C#

のような流れを作ってやるわけです。

こうすると、C言語特有のポインタや配列、char型での文字列(ASCIIのみなど)は、C++/CLIでうまく扱ってやり、配列の場合はArrayやList、文字列の場合はstringクラスに直してから C# へ引き渡してやります。

これらの利点は、

  • C言語のライブラリで扱う malloc 関数などを C++/CLI で吸収できる。
  • C#のstringクラス(Unicode)に直すことで、char型の配列を直接変換する必要がない。

また、C言語のライブラリが、昔からある計算ライブラリのような場合(社外秘となる画像解析や暗号解析のライブラリなど)を適度にクラスとしてくるんでやり、C#やVisual Basic のオブジェクト指向で扱いやすいパターンにします。そうすることで、主に.NET側でUIを記述し、高速化しなければならない科学計算などはC++を使ってポインタを駆使することが可能です。

さて、ここでC++/CLIを使う場合、C言語の科学計算ライブラリは、ヘッダファイルがあるために、インテリセンスがなくてもそれなりに記述ができます。非常に面倒ではありますが、なんとか記述可能です。

しかし、C#側で作成したUIライブラリなどを、C++/CLIに引き渡す場合に、非常に困るのです。C#の場合には、ヘッダファイルがないので、直接ソースコードを参照しなければ、クラスのメソッド名やパラメータが分かりません。

この場合、C#やVisual Basicで作られたコードが、DLLとして(アセンブリとして)提供される場合はどうでしょうか?

そう、C++/CLIからは全く手が出せない状態になってしまうのです。

Visual C++ 2008 の場合は、C# で作成したDLLを参照設定させた上で、.NETの各種クラスライブラリを使うことができたので、DLL内のクラスをインテリセンスを使い探索することが可能なのですが、Visual C++ 2010 の場合は、インテリセンスが効かないために、これが出きないという事態に陥ります。

そう、回避策として考えられるのは、

  • 一度、C#で組んだものを、C++/CLI にコンバートする。
  • Visual C++ 2008 で組んだものを、Visual C++ 2010 にコンバートする

という本末転倒なことになるわけですね。

これが致命的なところです。

 

ゆえに、C++/CLI のインテリセンスが出ない場合には、そのままレガシーシステムのラッパーを作れない、に等しい現象が起こるので、

  • C言語で作ったレガシーシステムを、C#に書き直すしかない。
  • C言語で作ったレガシーシステムは、C言語のみで管理するしかない。

の2点に分岐します。ただし、先に書いたとおり機密性の高いC言語ライブラリは、書き直すことは不可能ですし、高速化が必要な科学計算の場合はコアなところはC言語のままとしたいところです。

そんな場合は、C言語あるいはC++のみを使い続けるようになり、ここの分野ではC#やVisual Basicの移行は進まないでしょう。

と、なにやらぐだぐだと書きましたが、

  • 早々に、サービスリリースとかで、C++/CLIのインテリセンスを戻してくれよ!
  • それまでは、Visual C++ 2008 で C++/CLI を使うしかないね。

というのが結論ですねぇ。いまのところは。

カテゴリー: 開発 | C++/CLIにインテリセンスが必須な理由 はコメントを受け付けていません

Visual C++ 2010 の C++/CLI ではインテリセンスが効かない?

誤報であれば、後で修正しますが、ちと致命的なので。

Visual C++ 2010 の C++/CLI プログラミングではインテリセンスが効きません。

Microsoft のページでは、

Visual C++ 2010 の新機能

http://msdn.microsoft.com/ja-jp/library/dd465215.aspx

の中で、

強化された IntelliSense エラー

Visual Studio 2010 の統合開発環境 (IDE) では、IntelliSense の障害を引き起こす可能性があるエラーの検出機能が強化されました。また、IntelliSense エラーが [エラー一覧] ウィンドウに表示されます。問題の原因となっているコードを表示するには、[エラー一覧] ウィンドウでエラーをダブルクリックします。

となっており、強化されているハズなのですが、効かない。

20100427_01

で、試しに MFC のほうでプロジェクトを作ってみるとインテリセンスは効きます!

なので、どうやら「C++/CLI」だけインテリセンスが効かない、現象なのかと。

まずいなぁ~、これは、一挙にモチベーションが↓↓↓(3段階ぐらいダウン)。

MFCでプロジェクトを作るとき、インテリセンス用のデータベースがクラッシュして、仕方がないので作り直し(単にファイルを消すだけだけど)することが多かったのですが、C++/CLIのインテリセンスは効いていました。C#やVisual Basicでは、普通に使うので慣れてしまって、C++で作るときも必須ってな機能なんですけど、C++/CLIだけ、できないってのは、ちょっと困る。

# 英語のRC版でもできなかったので、直るものかと思ったら。こういう落ちとは。

公式的にはどうなのか、後で尋ねますか。。。

C++/CLIでもIntelliSenseが機能してほしい https://connect.microsoft.com/VisualStudioJapan/feedback/details/519716/c-cli-intellisense?wa=wsignin1.0#tabs

えぴさんに対する回答にコメントしておきました。

~~

2010/05/03 追記

Visual C++ Team Blog でも炎上していますね。
http://blogs.msdn.com/vcblog/archive/2010/04/13/visual-studio-2010-is-now-available.aspx#9995285

フォーラムのほうも
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/0dfc0cc6-271f-45a3-9838-1478e96df75b/
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/22ed2e0f-105c-4018-8591-fe999a14a80d

Microsoftからの公式コメントはないようです。

~~

追記:  2012/05/28

現状では、

  • Visual Studio 2010 上で C++/CLI のインテリセンスは使えません。
  • Visual Studio 11 beta (次期 Visual Studio)では、C++/CLI のインテリセンスが使えます。
  • Visual Studio 11 beta で、metro アプリケーションを作るための「C++/CX」では、インテリセンスは使えます。

という状態です。Visual Studio 11 で C++/CLI のインテリセンスが使えるので、Visual Studio 2010 の SP などで使えるようになる可能性も無きにしもあらず、って感じなのですが。どうなんでしょうねえ?

 

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

OpenPNE 2.14 で招待メールが送信できない場合

招待メールが送信できたのでメモ。

OpenPNE 2.14 では、メールの送信は、/OpenPNE-2.14.5/webapp/lib/util/mail_send.php の 62行目あたりで mail 関数を使って送っています。

PHPでは、メールの送信がいくつかあります。

http://www.komonet.ne.jp/~php/chap15.htm

で、招待メールが送れないパターンとして、

  1. 相手が拒否している。
  2. sendmail(かな?)、が from のドメインをチェックして送れない。
  3. 今回のように、mail関数のほうの設定がうまくいっていない。

場合があります。

1の相手が拒否している(と思われる場合は)、拒否解除をすると同時に、

config.php にある、

  • MAIL_ENVFROM で相手の受け取れるドメインにする。

します。

2のsendmail,qmailが、ドメインのチェックをしている場合は、

  • MAIL_SET_ENVFROM を false にして、-f スイッチで設定しない。
  • あるいは、MAIL_ENVFROM のドメインを合わせる。

形になり、

3のように、そもそもmail関数だと駄目な場合は、

  • MAIL_SET_ENVFROM を false にした上で、
  • mb_send_mail関数に切り替える

ようにします。

# MAIL_ENVFROM、ADMIN_EMAIL の設定を使いたい場合は、両方の mail 関数を切り替えればいいんだけど、mb_send_mail関数の追加パラメータが mail関数互換のなのか不明なので。

修正箇所はは↓です

mb_send_mail 関数を使う場合は、Subject が自動でエンコードされるので、

    // subject (改行コードを含んではならない)
    $subject = mb_convert_encoding($subject, "JIS");
    $subject = str_replace(array($cr, $lf), "", $subject);
//  $subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?='; // ★コメントアウト
mail関数から mb_send_mail関数へ切り替え
    if (MAIL_SET_ENVFROM) {
        if (MAIL_ENVFROM) {
            $f = MAIL_ENVFROM;
        } else {
            $f = ADMIN_EMAIL;
        }
        $params = '-f' . escapeshellcmd($f);
        return mail($address, $subject, $body, $headers, $params);
    } else {
//      return mail($address, $subject, $body, $headers);
        return mb_send_mail($address,$subject,$body,$headers); // ★切り替え
    }

ひとまず、bluehost 上に OpenPNE 2 を導入して、招待メールが送れるところまでOK。

カテゴリー: 開発 | OpenPNE 2.14 で招待メールが送信できない場合 はコメントを受け付けていません

OpenPNE 2.14 のインストールはok

ってな訳で、OpenPNE 2 にしてインストールはok。ログインまでできた。

んがしかし、招待メールが送れない…何故?

解決法としては、config.php の

// Envelope-From ヘッダを設定するかどうか(safe_mode の場合は false に設定してください)
define(‘MAIL_SET_ENVFROM’, false); ★

にするらしいんだが、bluehost.com ではうまくいかない。

試しに、自前のお見積りフォーム(ってのを作成中)では送信ができた。

mb_send_mail 関数を使っているので、ここが違うと思われる。まあ、このあたりは後日調査する。

 

ユーザを追加するのは、管理画面でCSV形式でインポートができるので、当面はそれを利用すればOK(実験だし)。

カテゴリー: 開発 | OpenPNE 2.14 のインストールはok はコメントを受け付けていません

OpenPNE 3 インストールできず

で、Bluehost の設定もできたので、http://www.openpne.jp/pne-downloads/openpne3/ にあるセットアップ手順通り

./symfony install:openpne

を入力して、動かしたものの…

Fatal error: Class ‘PDO’ not found in /home/hostname/public_html/pne3/lib/plugin/opPluginManager.class.php on line 164

なるところで頓挫。PDO がない現象にぶちあたると、phpの構築に走ることになるので、Bluehost の権限ではできず。

bluehost の PHP は、

PHP 5.2.11 (cgi-fcgi) (built: Dec 14 2009 22:49:29)

らしいのだが、何故駄目なのかは分からず。

ネットで調べてみたが、同じところで困っている人もいて、解決は yum ぐらいしかないみたい。

 

なわけで、OpenPNE 2 で試しますか。

カテゴリー: 開発 | OpenPNE 3 インストールできず はコメントを受け付けていません

bluehost で ssh を使う方法

ちょっと、公開サーバにOpenPNEを入れる必要があったので、お手軽にBluehostに入れようと思ったのだが、OpenPNE 3 からは、shell でインストールしないと駄目だった。

# OpenPNE 2 のときは、あらかじめ設定ファイルを作成しておく形式だった。

なので、shell を使う必要があるのだが、う~む。

Bluehost では、デフォルトでは ssh が使えない、が、結構簡単に開設できる。

  1. 運転免許書かパスポートをスキャナで取っておく。
  2. cPanel の「SSH/Shellアクセス」をクリック。
  3. なにやら、開設するには免許書送れなぞと英語で書いているので、サポートにアクセスするボタンをクリック。
  4. ドメイン名などを入れて、メッセージを入力

    Hi bluehost:
    Would you please be kind enough to give me the shell access right?
    My ID is “……”. I have attached my id card. thanks.

    な感じでokだそうだ。

  5. さっきスキャナした画像を添付して、送信。
  6. 暫く待つと(私の場合は10分弱だった)、SSHが開設したよ、っていうメールが来る。

SSHのログイン名は、cPanelの管理者のログイン名/パスワードなので、shell を使いまわすのは危険かなと。

ひとまず、TeraTerm を使って接続はok。

カテゴリー: 開発 | bluehost で ssh を使う方法 はコメントを受け付けていません

smallbasic で学ぶ twitter

先日の .NET ラボ勉強会で、木沢さんが、smallbasic を紹介していました。

smallbasic

http://msdn.microsoft.com/en-us/devlabs/cc950524.aspx

公式サイト(ver.0.8)からダウンロードすることができます。かつ、このバージョンからメニューなどが日本語で表示されます。

20100426_01

見てわかる通り、非常にきれいな画面です。.NET Framework 3.5を要求しますが、smallbasicの言語のためというより、WPFのために必要なのです。

中身は、変則basicです。ifに対応するのがendifだったり、forに対応するのがendforだったりしますが、まあ、basic です。

クラスや関数などややこしいものはありません。関数はなくてサブルーチンです。サブルーチンなので、引数が扱えません、という感じですが、まぁ、昔のN88Basicを使っていた人は、その頃に気分を戻すということで。

面白いのは、smallbasic で即実行ができるところです。HSPみたいに、さくっと作って動かすってのが可能です。

一応、Kids向けなのですが、squeakのような子供向けという訳ではないようです。インテリセンスが親切なのと、オブジェクトのメソッドが制限されているので、プログラミング初心者にはやりやすそうです。

なつかしいタートルグラフィックスもできます。

というわけで、

Twitter のログを smallbasic で読み込んでみました。

name = "moonmile"
url = "http://twitter.com/" + name
f = Network.DownloadFile( url )
'ファイル読み込み
For i = 1 To 1000
line[i] = File.ReadLine(f,i)
If line[i] = "</html>" Then
max = i
i = 1000
EndIf
EndFor
'ファイルを消す
File.DeleteFile( f )

GraphicsWindow.Width = 300
GraphicsWindow.Height = 400
GraphicsWindow.Title = name
GraphicsWindow.BackgroundColor = "darkgray"
GraphicsWindow.FontSize = 12
GraphicsWindow.Show()

y = 0
For i = 1 To max
l = line[i]
n = Text.GetIndexOf(l,"entry-content")
if n > 0 then
l = Text.GetSubTextToEnd( l, n + 15 )
l = Text.GetSubText( l, 1 , Text.GetLength(l)-7 )

'TextWindow.WriteLine( "- " + l )
txt = l
CutTag()
'GraphicsWindow.DrawText(1,y*20,txt)
GraphicsWindow.BrushColor = "darkslategray"
GraphicsWindow.FillRectangle(5,y*16*6,GraphicsWindow.Width,16*6-5)
GraphicsWindow.BrushColor = "white"
GraphicsWindow.DrawBoundText(5,y*16*6, GraphicsWindow.Width-10,txt )
y = y + 1
EndIf
EndFor

Sub CutTag

nn = 1
While nn > 0
s1 = Text.GetIndexOf(txt,"<")
If s1 > 0 then
s2 = Text.GetIndexOf(txt,">")
If s2 > 0 Then
txt = Text.GetSubText(txt,1,s1-1) + Text.GetSubTextToEnd(txt,s2+1)
EndIf
EndIf
If s1 = 0 or s2 = 0 Then
nn = 0
endif
EndWhile
EndSub

Twitter APIではなくて、httpの直読みw

20100426_02

ああ、そうそう、これってWEBで共有できて、Silverlightで確認できるんですが、このプログラムはローカルファイルを読み込んでいるので動きません。。。う~ん、サンプルとしてはいまいちか。

マウスイベントも取れるので、オセロとか作ると面白そうです。

カテゴリー: 開発 | smallbasic で学ぶ twitter はコメントを受け付けていません

Twitter API

http://usy.jp/twitter/index.php?Twitter%20API

Twitterを使う場合、ブラウザを開いてちまちま書いているんだけど、やっぱりアプリがいいか?

てな感じで、APIを一読(って、一応前にも読んだことがある)。

APIは比較的簡単で、HTTPプロトコルのPOSTが理解できればok。

Twitterクライアント サンプル

基本はPULL型のシステムなので、多くユーザがあるとシステムがパンクする。

PUSH型だと、ルータ超えの問題があるのだが、P2Pの方法もあるし、IMAP4っぽい実装もありかと思う。他のTwitterクローンはどうなのでしょう?

いわゆる、BOTと呼ばれる自動化された送信の場合は、特定アカウントにPOSTさせればOK。APIに則って、サーバーを立てれば、Twitterのサーバークローンもできるので、小規模で行うクローズドの実験も可能そうですね(API自体のライセンスはどうなっているんだろう?)

# 最近、思うようになったのですが、真似るならば徹底的に真似るほうが良い。
# 中途半端に独自性を出そうと思うと、インターネットの世界では例だけはいっぱいあるので、
# 「独自性」を打ち立てにくい。ならば、かつて、戦後の日本人がやったように、徹底的に真似、
# その先に民族性が内包されるのが良いのではないでしょうか?
# ……なぞと、イデオロギーっぽく語るテスト

クライアントを作るとすると、

  • .NETベースで、Twitterライブラリの構築(あるいは流用)
  • Silverlight上でWEBアプリ
  • WPFでデスクトップアプリ

な感じですね。
そう、広告配信アプリの前哨戦(いっぴんとかね)になればよいかなぁと、思ったり。

~~

そうそう、先に書いておきますが(最後に書いてるけど)、

  • Twitterで、BOTを受けたり、広告配信を受けたりするのは、詰らないのです。

面白いのは、

  • Twitterで、知らなかった人(人間)と交流する。
  • Twitterで、BOTや広告配信システムを創る。

な、ところでここを履き違えると、面倒なことになります。だって、ブログの当初は、自分で発信して、コメントをやり取りするのが面白かったわけで、アフリエイトなんかは後から付いてきた話ですよね?

ま、そんなことを言うとビジネスにならん、のかもしれませんが、決して

  • Twitterで、BOTと話をしたい。
  • Twitterで、広告配信を受けて、にやにやしたい。

訳ではないのです。まあ、漫画の新刊本なんかはAmazonレベルで広告を受けたいとは思いますが、リアルタイムにはちょっと、って感じかな、と。

~~~

Twitterクライアントとしては、WPFを使ってXAMLで、ストリーボードでぐりぐりと動くのがいいかなぁ。ムダにデスクトップを飛び回る、邪魔ものでもいいかも。BOTからの通信は、画面の上をすーっと流れるように(電光掲示板らしく)、友達からの通信は、左からキャラクタが覗いて語りかけるように、あと、気になるフォローは右の下にちろちろと燃える焚火のように。誰か作らない?

お仕事中のデスクトップアプリに紛れ込ませるのが、コツですね。そう、NTT DoCoMoのオペレータさんが、マウスアイコンをキティにしたり、チャットツールを常備したり(禁止だったんだけど)、するような感覚です。

こんな感じにすると、本来のTwitterプラス、広告配信も受けてもいいかな?と思うじゃないですか。違うかなぁ。

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