2011-01-01から1年間の記事一覧

ニーズ情報

被災地の現状必要なリソース情報と、履歴から、取得できる。 被災地の行政、ボランティアスタッフが被災者の声を吸い上げまとめることが可能な機能。

履歴の例)

募金の例(名前は適当で実際の物とは違います) Facebook 仙台のIT企業ファンページ 佐々木健一(インターネット) 0yen→ Yahooボランティア(銀行振込) 1000yen/5000口→ みずほ銀行 新宿支店(振込) 1000yen/50000口→ 新宿区(都の銀行的な送金手段) 2000yen/500…

被災地支援物資送受信プロトコル

仙台市役所のしみんひろばで活動中のNPO Life & Desireで支援物資を管理するシステム構築をしてくれと頼まれました。RFCの伝書鳩プロトコル的な物があると嬉しい 郵便システム的な物。

簡易的なボランティア運営システムを最速で構築したい!

自分は仙台市民なので、地震災害で大変です。 なにか、ボランティアしたいと思い、市役所の入口に座ってると、募金活動をしたいという学生がいた。 なので、2000円あげる。 で、話してると、NPOの手伝いをすることに。 とりあえず、携帯で各学校一覧を作…

Facebookがちょっとわかる

1.グループがコミュニティ機能どうも、グループがmixiのコミュニティで、コミュに誘ったり出来ちゃうみたいです。 で、チャット機能も付いてる。便利。2.ノートが日記機能っぽいノートってのが日記機能っぽいので、日記っぽいことはノートに書いてみよう…

SSD(仙台システムデザイン研究会)で英語交えて話してきました

今回は、ネットでサンフランシスコのアメリカ人も聞いている状態で話しました。 ネイティブの人で、日本語が話せる外国人がいるところで、 簡単な英語を使って話しが滑らかに進むのが、 理想なのですが、そうもいかず、グダグダな展開になりました。 50人…

ライトニングトーク

Social Top Runners 2011WINTER ~仙台(vo.6)~ https://eventforce.jp/event/10782話す機会があったので急遽、適当な英語でプレゼンしてきました。 インターネットのある世界では、 下手でも英語を話す機会を増やしていくことが、日本を豊かにすることに繋が…

エラー処理色々

エラーって何?っていうと正常処理に対しての異常処理ですね。 例外処理とも言ったりします。言語によっては例外処理機構なんてのもあります。また、エラー値を返すためにmaybeモナドなんてのもあります。 オブジェクトの場合はnullかオブジェクトかで処理が…

エラー処理について考える

エラー処理ってめんどくさいです。 そしてよくわからない。なんとなくやっているとだいたいうまく行くわけですけど、完璧?って聞かれると自信がありません。 これじゃぁ、困ります。 ということで、エラー処理について考えて行ってみようと思います。まず、…

specs

テストをちゃんとしてあるプログラムは安心です。 しかし、今まで趣味のプログラムのテストはきっちりしていませんでした。 それでは使えるプログラムにはなりません。 テスト書けば、書くだけいいプログラムになるはず。ということでscalaのテスティングフ…

Pelomyを改造する

C言語系統の言語を継承する言語を考えている私としましては、やっぱり、if(a)b else cのほうがいいはずとか、 マッチングはswitch文を拡張したような形がいいはずだ!とかいう考えがあるので改造してみました。 あと、a.b.c(3)なんていう風に書くとエラーに…

tricks/test.d

テストとテスト用のプログラムが記述されている。ということで、非常に大雑把に全体を読んでみました。 次はマクロレイヤーあたりが気になるのでマクロについて詳しく読んでみたいと思います。

valueconv.d

値を変換するプログラムが入っている。 polemy2dではpolemyのデータをDのデータに変換する。 d2polemyはその逆といった感じ。

value.d

Value抽象クラスを継承したStringやInt等の値を定義してある。

runtime.d

実行時に動作させる、プリミティブなランタイムライブラリ で、名前とレイヤと関数をaddPrimitive関数を使って登録している。

layer.d

レイヤーの列挙と、どのレイヤーかをチェックする関数がまとめられている。

fresh.d

たぶん、新しいユニークな文字列を返す。

failure.d

エラー処理周りについての実装がある。

_common.d

共通で使うimportが列挙されているので、これをimportすればいいというもの。

lex.d

parse.dで使われている字句解析を行うのがこのプログラムだ。 レキサーを作って返す関数と、レキサークラス、 あと、レキサーから返されるトークンクラスがある。 正規表現などは使わずにまじめに字句解析しているので速そうだ。

ast.d

パーサが返す抽象構文木を表すクラス群を定義してあるのがast.dである。 内容はいたってシンプルだ。 ASTクラスが抽象クラスになっていて、文字列クラスや値クラスがASTクラスを継承する形になっている。 細かい処理はSimpleClassにまとまっていてmixinして…

parse.d

まずは、パーサをlexer(字句解析器)から作る関数がある。 で、作ったパーサでパースして返すようになっている。 パーサはパーサクラスで定義されていて、 下降型のパーサである。 parse関数から各文法要素に対応した関数を呼び出すようになっていて、Strin…

eval.d

評価器クラスが定義されている。visitorパターンではないけど、visitorパターンっぽいことを実現している。evalメソッドが面白いところだ。 メソッドの型とクラスの型をチェックして対応する型のeval_メソッドを呼び出している。 いちいち、visitor,acceptせ…

repl.d

mainから呼ばれてるクラスがREPL REPLはEvaluator(評価器)やTable(表)やValue(値)を持っている。

main.d

parseArgvで引数のパース mainは引数によって、 ライブラリ指定がされていればライブラリのコードを実行したのち ファイルを実行するか、 replLoopを実行する。Dでは配列の先頭からのとりだしがpopFrontなんだなぁ。

Polemyを読む

phpでAMF0

Flashと通信を行う場合の方式の1つにAMFというものがあります。 現在AMFにはAMF0とAMF3の2つの実装があります。 AMF3はActionScript3にあわせて作られた新しい実装です。 色々と改善されているのですが、処理速度的にはAMF0のほうが速くなるのではないかと…

構文木はどう処理するか?

構文木はインラインアセンブラの場合は、アセンブラの抽象構文木に変換された後、ホスト言語のコンパイル結果と混じって1つのコードを出力することになるでしょう。コード出力部が十分小さければ、実行時にJITすることも同じロジックを使って行えるようにな…

演算子空間と文法空間

インラインアセンブラは asm {}の中身はアセンブラとして構文解析されました。インラインアセンブラを作る場合、新しい演算子空間に入ったところで文法も変わり、抽象構文木は別物にすることになるでしょう。ホスト言語の文法に対して、ドメイン特化言語の文…

演算子空間の実装方法

次に実装方法について考えます。 具体的なJSONを使って記述した演算子表を以下に示します。 { infixes:{100:"+",200:"*"}, operatorSpace:{ asm:{ extends:"root", infixes:{100:"-",200:"/"} } } }infixes は中置演算子の表です。oparatorSpace が演算子空…