目次

ATOM SHELL理論

全ての言語のコードをパイプラインで結びつけるという理論です。

パイプラインで通過するデータは基本XML形式にしようという理論でもあります。

いろいろな言語で作ったコードを共通の仕様のインターフェースで通してしまえば、いいじゃん。という感じです。

ATOM SHELL 理論は、自分が提唱する理論の名前です。 Yahoo pipsにインスパイアされました。

URL

http://pipes.yahoo.com/pipes/

いろいろな言語で、パイプ処理用のインタフェースをそろえ、 iPhoneのAppストアのように、ライブラリを一元管理し、バージョン、評判のインタフェースを提供することで 車輪の再発明を押さえながら発展していくための理論、哲学をまとめていこうとおもっています。

現在データは全てRSSでいうところのATOMで表現する等が流行っているが、これはパーサが比較的用意しやすいからである。むしろパーサを用意するには、javascriptのほうが適していたりする場合がある。

これは、各処理言語の既存のモジュールに依存しているだけの話である。

パイプとは関数言語的な仕組みであるから、これに含まれるデータはデータのみならず、関数自信も含んでいたほうがよい。関数とはフィルタであり、パラメータによって可変であれば、yamlの定義ファイルで置き換えることができる。

で、極力フィルタは一元管理して、再発名を防ぎたいから、単機能のフィルタになる。 それらは、一元管理されているべきである。有用なものには、値段がついていたほうが、開発者のモチベーションはあがると考えられるので、ますますAppStore?のようになるかもしれない。

いろいろな言語をつなぐには、UNIXのパイプ処理に焦点をあててみてもいいかもしれない。

でも、結局人間が見やすいのはExcelやOpenOfficeのスプレッドシートであるから、最終的にはこれらのファイルに変換するマクロを用意するようにする。

ネットワークからATOM記事を得る方法

例えば、技術評論社のATOMフィードは下記のアドレスです

http://rss.rssad.jp/rss/gihyo/feed/atom

これを取得する方法は

エクセルマクロ(VBA)をコマンドラインから呼び出す

http://d.hatena.ne.jp/GARAPON/20090120/1232449513

たのしいXML: RubyでXMLデータを扱う (1)

http://www6.airnet.ne.jp/manyo/xml/ruby/home.html

2009-10-19 [Ruby] 標準入力を処理するプログラムを書く

http://d.hatena.ne.jp/unageanu/20091019

javaで標準入力を処理する例

コード

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class ReadLineSample {
   public static void main(String[] args) {
       try {
            BufferedReader stdReader = new BufferedReader(new InputStreamReader(System.in));
   String line;
   while ((line = stdReader.readLine()) != null) {
       System.out.println("java:" + line);
   }
   stdReader.close();
       } catch (Exception e) {
           e.getStackTrace();
           System.exit(-1);
       }
   }
}

コンパイル

javac ReadLineSample.java

実行

例cat ReadLineSample.java | java ReadLineSample

wshで標準入力を得る

'WScript.Echo "hello"
'Set regexp = CreateObject("VBScript.RegExp")
'regexp.pattern = "a+"
'regexp.Global = True


Do Until WScript.StdIn.AtEndOfLine
 strInput = WScript.StdIn.ReadLine
 WScript.StdOut.Write strInput
Loop

これを保存しておき、たとえば、filter.vbsというファイル名で保存したとすると、

cscript filter.vbs

で実行できます。

標準入力の数式を計算する例

'////////////////////////////////////////////////////////////////////////
'	簡易計算VBScript
'		2004/07/13 うっちー
'////////////////////////////////////////////////////////////////////////
Option Explicit

Dim objRE, wExpr 

'	正規表現オブジェクト初期化
Set objRE = New RegExp
objRE.Pattern = "[^ a-z0-9.+\-*/^()\\]"
objRE.IgnoreCase = True
objRE.Global = True

On Error Resume Next
Do Until WScript.StdIn.AtEndOfStream
	wExpr = objRE.Replace(WScript.StdIn.ReadLine, "")
	WScript.StdOut.WriteLine eval(wExpr)
Loop

Set objRE = Nothing
WScript.Quit

Charu3のプラグインから入力を得ることができます。

このサイトでの紹介記事

PerlでSJISをUTF-8に変換するフィルタプログラム

目的

まずcygwinでvbaから出力されたテキストをtailコマンドで閲覧するのが目的でした。

変換のnkfは、標準入力をいったん読み終えてから変換する仕組みであり、tailコマンドと組み合わせるには不向きなので、却下

qkcはutf8が使えないとかいうので却下

いろいろ試してみた結果、vbaからはsjisで出力して、 下記のperlで作ったシェルをパイプで連結することで目的が達成できることが判明した。

コード

#!/usr/local/bin/perl
use strict;
use warnings;
use Jcode;

while(<>){
    print Jcode::convert( $_ , "utf8", "sjis" );
}
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-07-03 (水) 12:58:41 (1839d)