2015年07月23日

MicroServiceの記事を読んで

MilkcocoaもMicroService的に(あんまりそのつもりは無かった)やっていて、数十リポジトリあるんですが。
実際アプリケーションを担保する部分だけをNodeJSからErlangに変えたときも、他の部分はほとんど変更することはありませんでした。システムが複雑になれば、それぞれの部分に必要な性能や要件が異なってくるので、必然的にこういう設計が必要になってきますね。
この記事の例は、分け方やインターフェースを間違うと大変きついってことですね。Erlangのホットデプロイが難しいって話と似てる気がします。一枚岩にして変更した方が、ある種の安心感はあるんですよね。
http://www.slideshare.net/AkiraMiki/20160722-microservice
自前でサービスを分けるだけでなく、他のいろんなサービスと組み合わせて作ることは当たり前になるでしょうね。
こんな感じに→ RoRとMilkcocoaの連携方法について
http://blog.mlkcca.com/backend/milkcocoa-for-ror/
posted by Syuhei Hiya at 18:00| Comment(0) | TrackBack(0) | 日記

2014年04月22日

プログラミングができるようになるまで

寝れないから、私がプログラミングができるようになるまでの話を書こう。

大学に入るまで


私は大学に入るまではPCではゲームをするくらいだった、高校は全寮制だったのでPCどころか携帯も持ち込み禁止。Google検索ですら、やり方がよくわからなかった。

中学のときは数学が好きだった、他の科目の時間も数学をやっていた。数学だけは成績がちょっと良かった。
高校に入って物理が好きになった、数学よりも現実に近く、なおかつ数学で記述できることがおもしろかった。でもたぶん、あまり勉強する生徒じゃなかった。

大学入学



九州大学に入ってすぐ授業でSchemeをやったが全然分からなかった。
1年生の夏にExcelの使い方を覚えた。
後期になり授業でC言語をやったが#includeの意味がわからなかった。
2年生に進級する春休みにWindows APIを勉強してオセロを作った。これが初めての作品。1週間かけて作ったが、C言語は大文字と小文字の区別があるということも知らず、長々と写経したプログラムを書き直したりしていた。その次の週には、Windows APIで3Dの立方体をソフトウェアレンダリングしていた。数VCが得意だったので、線の表示の仕方さえ分かればなんとかできた。

2年生の夏には、OpenGLを知った。ソフトウェアレンダリングよりハードウェアでやったほうが良いようだ。
でも難しくって、しばらくFlashに逃げゲームを作っていた時期もあった。脱出ゲームが流行っていた時期だった。Javaを勉強して、iアプリとかも作った。
さらにHTMLとPerlが書けるようになり、Webサイトを作った。DBはまだ知らなかった。
お金がなく、ジャンクPCを復活させるという特技を身につけた。2000円でブートパスワードロックのかかったLifebookを買って、プログラミングしていた。あとで同じ型の中古品を見たら1万円の値段がついていた。
あと授業でハフマン符号化とか習ったら、その日のうちに実装していた。楽しくて仕方なかった。
渋滞学とかカオス力学とか遺伝的アルゴリズムとか、本を読むたびにコードに落とし、周りの人に見せていた。周りの人の反応はあまりよくなかった。ちなみに誤解の無いように書いておくと、私は引きこもっていたわけではなく、大学2年生のころは毎日夜中になると街に出かけて遊び歩き、明るくなる頃に帰っていた。

3年生のときには多くのことをやった。
まずOpenGLやSDLでゲームが作れるようになっていた。OpenGLでSimCityもどきとか作っていた。
あとOpenGLでXファイルをインポートして、スキンメッシュアニメーションを作成するためのツールを作った。この頃から開発ツールよりになっていった。作るためのものを作る、ということを知った。
OSについて勉強しまくり、自分でOSを作っていた。確かアセンブリとC言語とC++を組み合わせて作っていた。Linuxやminixのソースを学校で印刷してバスで読んでいた。Linuxのソースでメモリ管理やタスクスケジューリングやC言語のマクロを学び、netBSDのソースでアーキテクチャ依存のコードを読んでいた。
ぷよぷよもどきを作って、ネット対戦できるように自宅サーバを構築した。TCP/IPプログラミングはこの時やった。サーバサイドとクライアントサイドという概念を知った。

4年生の時、研究室に入った。
ドメイン特化言語やモデリング言語について知り、世界が広がった。
すぐに画面遷移図からSWFを生成するデモを作った。初めて褒められた(気のせいかも)。
9月にIPA未踏ユースに提案書を提出した。テーマは「Webベースのモデル駆動開発ツール」、ブラウザ上でUMLを描くとソースコードが生成される。プレゼンでは(JavaScriptをろくにかけないくせに)「HTML5でやれば絶対できますよ!」と言っていた。採択された。
東京であった未踏ユースの最初の集まりは、前日にクラブに繰り出したせいで終止爆睡していた。
しかしプロジェクトは予定より2ヶ月早く完成させ、研究室内で利用してもらった。このプロジェクトの中では、状態遷移図の中に記述するアクション言語の実装も含まれている。つまりこの時すでにプログラミング言語を実装している。
ちなみに大学の卒業研究は、Android携帯の消費電力プロファイリングについてだった。

大学を卒業して大学院入学後



大学院に進学し、このプロジェクトの成果をモデリング言語を作るプラットフォームであるcloocaに進化させ、他の大学にも導入された。
いつのまにかcloocaの言語はPython、Javascript(Node.JS)に移り変わった。
会社を作ったり、FLOWer言語を作ったりもした。
たまに趣味でAndroidアプリやiOSアプリやWebアプリもリリースしている。

まとめ



私がプログラミングができるようになるまでを書いた。
振り返ると、授業のプログラミングってあまり身になってないな。
あとフレームワークとか全然出てこないw

言いたいのは、つまりプログラミングができるようになるのは大変なんだぞってこと。
posted by Syuhei Hiya at 03:13| Comment(0) | TrackBack(0) | 日記

2014年03月05日

こんな簡単に作れるなんて

bitballoonとmilkcocoaを使って、プログラミング初心者が簡単にWebアプリを作りました。



posted by Syuhei Hiya at 14:53| Comment(0) | TrackBack(0) | 日記
Powered by さくらのブログ