ScalaをSBTやIDEで使ってみる

目的:MacにScalaをインストールして、ビルドツールやIDEのプロジェクト作成などをやってみる。

Scalaのインストール

Macにscalaをインストールする。
JDKはあらかじめインストールしておく。
brewを使ってscalaをインストールする。

$ brew install scala
$ brew install sbt

sbtはscala用のビルドツールでJavaにおけるAntみたいなやつ。
simple build toolの略らしい。
続きを読む

PHPでJSONの整形

PHPでJSON文字列を整形して出力する場合、改行やインデントを挿入しながら文字列を再構成する方法と、一度json文字列をjson_decodeでobjectに変換して整形したJSON文字列にシリアライズする方法がある。

JSON文字列を再構成して整形

続きを読む

プログラムってなんなのか

人からプログラム教えてほしいと言われたので、なんかそれらしいことしないといけないかなあと考えて書きました。

プログラムとは

プログラムとは、計算機が理解出来る言葉で記述された命令です。すべてのプログラムは入力と出力が必ず有ります。

入力→プログラム→出力
続きを読む

Socketの中継を考える(C言語編)

メールやらHTTP等の通信プログラムのプロトコルは大抵Scoketを使用して通信している。HTTPプロトコルが実際がどういうデータの流れになっているか知りたかったのだが、Socketを中継してみてそのデータを標準出力するプログラムを書いてみた。プロキシサーバのような外部Hostへの中継は難しいが、ローカルで動作しているサーバはポート番号だけ入れ替えることで出来るようになる。

通常は
ブラウザ ←→ HTTPサーバ(ポート80)
となっているのを
ブラウザ ←→ SocketRelayサーバ(ポート8080)←→ HTTPサーバ(ポート80)
のように中継させる事によって、ブラウザからはSocketRelayサーバがHTTPサーバとして動作しているように見えるようになる。SocketRelayサーバは単純にSocketの入出力ストリームを中継しているだけで実質何もしていない。HTTPだけではなくてPOPやSMTPやFTPなんかも同様に出来る。

ソースコード

続きを読む