タッチ・アンド・スリープ・アンド・ゴー

つまらないことしか書きません

スケッチ文化って面白いなって話

IAMASあしたをプロトタイピングするプロジェクトってプロジェクトのお手伝いをしています。
履修登録はしていませんが。
あしたをプロトタイピングするプロジェクト(以下あしプロ)の中でアイデアスケッチというタスクがあるのですが、色々考えるところがあったので記しておこうと思います。

About IdeaSketch

詳しくはこちら
ishiirikie.jpn.orgイデアスケッチはどんなプロダクトを作るかのアイデア出しの際に書くもので、あしプロ正規学生のid:rahiro曰く「ブレーンストーミングを絵に描いて行う」みたいな発想手法。

Why Interesting

イデアスケッチは実現不可能そうな、普通の会議で言及してもすぐにボツ案になりそうな突拍子の無いアイデアでも採用し、アイデアの数を重要視します。

デザインの現場では広く知られている手法らしいのですが、工業の大学からIAMASに来た私は興味深く感じました。
エンジニアばかりのミーティングだと、面白いアイデアを出しても最初の返答は「それどうやって作るの?」とか「そんなの作れないよ」とか。
そんな事がよくあるエンジニアはどういう発想をするかというと、自分の技術力で作れそうなモノ、それも容易に作れそうな、そういったアイデアしか発言できなくなります。

大抵のエンジニアは自分の技術力の程度を理解しています。
「自分の技術力だと、これくらいのレベルのモノだったらすぐに作れそうだな。」という考えで発想するので、面白いプロダクトなんて作れるはずが無いです。

しかしながらIAMASで学んだ事がもう一つあって、「エンジニアは自分の技術力を過小評価しがち」だという事です。
デザイナが出した突拍子も無いようなアイデアで、エンジニアが「こんなの作れないよ……。」と思ったものでも、エンジニアが頑張れば大抵実装できます。(ソフトウェアに限るかもしれないけど)

思うところ

エンジニアの思考だけでデザイナの面白いアイデアを潰してしまうのはものすごく勿体無い。
自分の技術に誇りを持って、考えられるエンジニアになりたいですね。

node + express周りの基本 - 備忘録

大学院のプロジェクト(研究室みたいなやつ)の一環で習作を作っています。その中で、サーバサイドをnode + expressで作りこんでいます。
今まで、nodeのCLIを少しとexpress未経験だった僕としてのちょっとした備忘録。

導入

開発環境がmacなのでmac向けに書きます。今のmacにはデフォルトでnodeとnpmが入っているので、面倒くさいバージョン管理は抜きにしてプリインストールのシステムを使います。

$ mkdir project && cd project  
$ npm init  

質問に答えていく

$ npm install express  

作ったディレクトリにexpress(node環境のwebアプリケーションフレームワーク)をインストール 。
npmではnodeをベースにしたプロジェクト単位でパッケージを入れられる。

$ npm install ejs  

expressで使えるテンプレートエンジン。PHPみたいに使える。
ejsとjadeの2種類がある。
ejs => 今までの静的ページの資源を再利用し、PHPのように実行部分を付け加えられる。
jade => Rubymiddlemanとかあんな感じのノリでHTMLへ変換するための記述していくやつ。

$ mkdir views && cd views  
$ cat > index.ejs  

テンプレートファイルやHTMLファイルは $WEB_ROOT/views の直下に置いていく。

$ cd ../  
$ vim srv.js  

サーバサイドのプログラムを記述。
後述。

$ node srv.js  

サーバアプリを起動。

コーディング

var express = require("express");
var app = express();

// テンプレートエンジンにejsを使う指定
app.set("view engine","ejs");

// まずはwebサーバを8080ポートで開く。
var server = app.listen(8080,function(){
    console.log("express is running at "+server.address().port);
});

// $WEB_ROOTにGETリクエストが送られて来た時の処理
// req => 来たリクエストのデータが格納されている。
// res => レスポンスを送るためのインスタンス。renderメソッドとかsendメソッドでクライアントにレスポンスできる。
// next => よく存じ上げていない。今のところ使っていない。
app.get("/",function(req,res,next){
    res.render("index",{});
});

// $WEB_ROOT/api とかにPOSTリクエストが来た時の処理。
app.post('/api',function(req,res){
    //renderの場合はview以下の第一引数で指定したテンプレートファイル/HTMLファイルがクライアント側に返されて表示される。
    //第一引数の文字列からは拡張子は省略できる
    res.render("api",{});
    //sendはデータをレスポンスで返せる。
    //ObjectとかArrayで返すと便利。
    res.send([
        {taskName: "帰る", taskPriority: 1},
        {taskName: "寝る", taskPriority: 2},
        {taskName: "学校に来る", taskPriority: 3}
    ]);
});

この際なので.bashrcを作り込んだ

Githubでターミナル起動時のスクリプトを公開してる人が多かったので、僕もちょっと整理して書いてみた。

続きを読む

タロアニ!2016に来てくれ! #タロアニ

twipla.jp

続きを読む

JavaScriptのclassの変数周りで嵌ったので記録

今日の話

続きを読む

いいから俺の旅の思い出を見てくれ!

8月の16日から昨日までベトナムホーチミンっていう所に居た。

撮った写真たちを公開しないのは勿体無いのでこのブログで供養させて欲しい。

 

続きを読む