最近、Rails 以外の Webフレームワークをいろいろ見て思ったこと。

Rails, Think 2 Comments »

結論:Rails しか見てないのは良くない。

自分がよくやるRailsアプリの作り方は、(仕事でバリバリやってないので、作り方、結構適当です。けど、こういう流れで作ってる人も多いのでは?)

  1. だいたいのコンセプトを決める。
  2. UI設計(ホワイトボード、紙、最悪の場合:脳内)
  3. DB設計(って、言っても必要そうなエンティティ(Railsで言うとModel)とリレーションを考える。)
  4. DB設計に従って、さくっとScaffold。きゃは。
  5. 不要なアクションを削る。必要なAction と View を作る。(もちろんControllerもね)
  6. UI設計に従って、装飾。(Viewをいじりながら、CSSいじる。)
  7. 機能追加。Scaffoldだけではさすがに終われない機能は、もちろん作りこみます。
  8. 作り込むまでもなく、plugin があれば勿論ありがたく入れる。DRY!

5. ~ 7. と、デバッグはぐるぐるループしますが、だいたいこんな感じで作ります。

と、説明したところで、最近「UI」についてイロイロ考えてたのでまとめてみます。たまたまみつけた「はぶさんのRailsやChuraのいけてないところ(2006年のエントリー)」がきっかけになりました。

1.UIを設計する
2.UI設計の成果物を元に、DB設計をする
3.DB設計の成果物を元に、UI実装を自動生成する

RailsやChuraってのは、3.のところをやってくれるんだけどさ、手順全体を見たらださいじゃん。「1.の成果物(が想定しているUI実装) イコール 3.の成果物」に本当に出来るの? ちゃうでしょ。凝ったUIだったら駄目じゃん。CSSで頑張る? それで済む程度のシステムだったらいいんだけどね。
~~~
1.の成果物をストレートにUI実装に使えるほうがいいじゃん。

例えば、「1.UIを設計する」 のところで、HTMLモックを作ったとしてそれが実装として使えないんですよね。Rails Viewにコピペ(だけじゃなくてタグ化とかも)だし、ループ制御やIF制御なんか追加すると、結局みんなが昔忌み嫌ったJSPとほとんど変わらないVIEWが出来ると思う。ここ進化してない。

ちなみに、Rails界隈でみんな大好き 37signals の開発手法(物語が多いけど) Getting Real によると

紙スケッチ
-
スケッチは素早く、殴り書きで、お手軽でできるもの;それ以上は必要ありません。書きましょう。走り書きでいいんです。四角や丸や直線なんかのシンプルなものでいいんです。アイディアを頭から紙に写します。目的は、頭の中のコンセプトをラフなインターフェースのデザインに変えるところです。ここはまだ実験段階です。正しい・間違いといったことはないのです。
-
HTMLを作る
-
先ほどのスケッチの特徴(または、セクションやフロー)を元にHTMLを記述してみます。実際に形にすることで、皆がスクリーン上で見ることができるのです。
「Basecamp」では、我々はまず、「メッセージを書く」スクリーンを作り、次に「メッセージを編集する」スクリーン…徐々に開発を進めていきました。
まだプログラミング・コードに手を出してはいけません。あくまでHTMLとCSSの、現実に近い模型を作るのです。完成品にするのは後の段階です。
-
コードにする
-
実験的に作ったものがうまくいって、必要な機能を満たしたのなら、実際にプログラミング・コードを記述していきます。

と、あるんだけど「あくまでHTMLとCSSの、現実に近い模型を作るのです。」は最終的にVIEWにせっせこ書き直してるのかな。 じゃあ最初からHTMLモック(模型)をERB形式でってのは「デザイナと分業!」ってのが難しくなるという、なんともはや。個人的にデザイナと!って形式で仕事したことないので実際どうかは分かりませんが。

それで、いっきに話は飛ぶんですが見つけましたよ!プレーンなHTMLを(ほぼ)そのままVIEW層で使えるWebフレームワーク 。Java界隈の人は気付いてると思いますが。

Wicket (日本語サイト: Wicket-ja )です。もう一気に惚れました。ありがとうJava。ただいまJava。かくいう私も、就職してから4年間はJava(主にStruts)を業務でやってたのでJavaは好きなんですよ。なにが惚れたって、このくだり。

Wicketの最大の目標は、ウェブ・アプリケーション開発にオブジェクト指向を取り戻すことです。

ちなみにこのページに書いてあること全部かっこいい><

さらに脱線するんですが、UIだけさらに特化した話をすると尊敬するS氏から教えてもらったGWT-Extとかね、もうね、どうしろと>< ああ、そういえば、知る人は知っているからいまさら言いふらさなくていいって言われてたんだけど書いちゃった。

なんというか、最近、Railsから離れた目で巡回してたらJavaの底力を見たというか。

大分古いけどエンタープライズで(お仕事で) Rails使って炎上って話
Rails炎上|傲慢SE日記 ~30歳からの挑戦~
Railsについて思うこと
を読んでると、またJavaに戻ってきたりして。炎上ってのは言語やフレームワークとは全然違うレイヤー(生産性が10倍!なんて幻想に惑わされた営業や上層部や管理者etc)が問題なんだろうけどぉ。

Rails とか Java とか言ってる自分は C# な仕事してるんですけどねw

結局、1エンジニアが生涯で携わるプロジェクトの数ってそう多くないだろう(何十個や何百個ではないの意)から、業界の流れが自分にどれだけ影響するんだろうって気もするけど。流れっつってもBlog読み読みしてるだけなんだけどね :-) なんにしても言いたかったのは流行りに流されないように自分の目を持っていたいね。(って自分に言ってる)

===

気になるフレームワーク(というより連携?w)自分用まとめ

  • Wicket + Guice + ActiveObjects (Guiceはあえて使わなくても良いかも)
  • GWT-Ext on GAE (GWTで吐かれたJS/HTMLをアップすればGAEでも動くらしい元ネタ本当かな?Extについては言及されてないっぽい)

問題は何作るかだな。。。

CO2削減や地球温暖化対策に関係するWebサイトを調べてみた。

未分類 No Comments »

CO2削減に関するWebサイトを作っているので、そういえばライバルとか調べとかなきゃと思って調べました。普通は作る前にマーケティングしろって?

「CO2削減 サイト」でGoogle検索した結果から、目に付いたものを取り上げます。後で面白い事が :-)

チーム・マイナス6%
http://www.team-6.jp/

言わずと知れたサイトなので説明は割愛。勝手な印象はコンテンツしかないので読み物系サイトといった感じ。特徴として強いてあげると、チャレンジ宣言というのをすると「私のチャレンジ宣言カード」というのがもらえるらしく、それを使って協賛企業からちょっとした恩恵を受けることが出来ることぐらいかなぁ。まぁバンバン宣伝されてるので人は多い多い。

協賛企業と恩恵を調べたい人はこちら。日付が過ぎちゃったものも多数。あと、正直このインタフェースでいちいち捜す気にはならないなぁ。

CO2削減チェッカー
http://www.nhk.or.jp/co2/

『CO2削減チェッカー』は、地球温暖化を防止するために、CO2(二酸化炭素)を、一人1日1kg削減するとりくみを支援するホームページです。

1kgのCO2削減には、何をどれくらいやれば減らせるのか? このホームページには、『エアコンの設定温度をさげましたか?』などのCO2削減メニューがおよそ30あります。その中から、あなたが無理なくできるものを選んで、1kgの削減をめざしましょう。

NHK が運営してるサイトなんですが、他のテレビ局に比べてネットに一番友好的なテレビ局だけあって、なかなか堅苦しさが抜けてて。へぇと思いました。ブログパーツもあるのかぁ。NHKキテルネ。

そして、なんと!!
5番目に拙者が開発に関わっているエコバンクが!!けれども5番目なんて恥ずかしい><もっと立派なサイトにしてから見て欲しかった(なんて言ったら怒られるかな)

エコバンク
http://www.eco2bank.jp/

普段の生活で利用したエネルギーなどを入力することで、CO2排出量を計算することができる「エコ家計簿」や、エコ情報コンテンツ「エコ生活ガイド」、情報交換掲示板「エコ広場」など様々な機能をご利用頂けます。団体でご利用頂くと「会社・社員の環境貢献度レポート」などの法人・団体様向けサービスもございます。

少しでもCO2削減・地球温暖化対策をしたい人の助けになれば良いなと思って、みんなで頑張って考えて作っております。ちなみに近々リニューアル予定でっす!
あっ・・・ファビコンがXoopsのままだorz

のってこ!
http://notteco.jp/

ライドシェア(クルマの相乗り)相手を見つけることができるサイトです。
旅行・帰省・レジャー(スキー・スノーボード・ゴルフ・サーフィン・ライブなど)に出掛ける際に、
のってこ!で見つけた相手とライドシェアを行うことによって、

【1】 ドライバーの方は、高速道路料金・燃料費を割勘できます。
【2】 同乗希望者の方は、クルマがなくても交通費を安く抑えて移動ができます。

本人確認を行っているため、他サイト(匿名制の掲示板サイト等)よりも安心です。

ざっくり見た感じ、「乗せてあげるよ!」という人のほうが多い雰囲気。これはすごい。

あとは、CO2計算(環境家計簿)と読み物コンテンツというのが多い多い。

調査は以上です。お疲れ様でした。

もし、このブログをご覧になった方の中に、「CO2削減」や「地球温暖化対策」に関係するWebサイトで面白いサイトあればコメント・トラバで教えてください><お願いします!

学級崩壊撲滅!幼児向け学習サイト「いいこ☆いいこ」

妄想システム, Think No Comments »

システムの背景:学級崩壊の原因は子供が仕様を聞かされてないからじゃないか?

以下、妄想システム

サイト名: 「いいこ☆いいこ」

システムの目的:学級崩壊撲滅!

対象ユーザ:ひらがなが読める幼児~小学1年生、お父さん、お母さん

利用シーン:ちっちゃい子がお父さん(お母さん)のひざの上で「学校」について学ぶ

主に学ぶこと:勉学的なことではなくて、生活習慣的なこと。小学校1年生を受け持つ先生が「これさえ出来れば学級崩壊しないのに」と思ってること。

仕様一覧

  • 子供が楽しく学べるように、プーさん(著作権がぁ・・・)もしくは可愛いオリジナルキャラクターが音声付で話しかけてくれて1つの「やること」を教えてくれる。
  • 幼稚園(小学校)から帰ってきたら、サイトにログイン。「やること」が「できた?」か聞かれるので「できまちた!」か「できなかった!」か答える。2週間「できまちた!」で、その「やること」はクリア。「できなかった!」だったら、プーさん(著作権がぁ・・・)もしくは可愛いオリジナルキャラクターが音声付で優しく「がんばれ!」と言ってくれる。
  • サイトの文章は全てひらがな
  • ほめる、ほめる、ほめる
  • ひらがなの名前と好きな数字4桁でログイン。
  • 友達とクリアした「やること」を見せっこできる。

要求定義~導入まで、1000万でお請け致します :-)

興味持たれた方は、gabuアットマークgabuchan.net (アットマークを@に置き換えて下さい。スパム対策)までメール、もしくはコメント・トラックバックでお気軽にお問い合わせください。

学級崩壊の原因は子供が仕様を聞かされてないからじゃないか?

妄想システム, Think No Comments »

保育士になりたい」なんて書いた後に、toyoshi さんが「30以上のプロジェクトを同時に行う最強のプログラマ」という面白いエントリーを書いてて何という奇遇と思って興味深く読んで、あれこれ考えてみた。

小学一年生は・・・
* 自分がなぜ学校にきているのかよくわかっていない
* 教室は入るものということを知らない
* 「自分の机」というものの意味がわからない
* カバンは学校にきたら開けるということを知らない
* トイレを自分でみつけるなんてもってのほかだし、使い方を知っているとは限らない

「知らない・わからない」の原因は、 仕様が聞かされてない(もしくは理解できていない)からじゃないのかなぁと。だから、プログラムに例えて言うなら、仕様どおり動けない。もっともだ。

wikipedia にまとまってるけど1ページで表せるほど「学級崩壊」は単純じゃないと思うんだけど、ここでは「鉄は熱いうちに打て」の精神で、1年生の項を引用してみる。

1年生の学級崩壊
1年生の学級崩壊では、誤った自由保育や、家庭の教育力の不足などにより、基本的生活習慣のできていない子が要因となって起こる場合が多い。高学年の学級崩壊が教師に対する反発・暴言・暴力が多いのに比べると、低学年の学級崩壊は「授業中に椅子に座っていられない」「机の上を飛び回る」などである。

1年生になってから(学校の)仕様を伝えるのか、なる前に仕様を伝えるのか、小学校入学前の子供がどれぐらい国語力と理解力があるか分からないので判断は難しい。

ちょっとググった感じ、小学校入学前の「よみ・かき」「数を数える」をやる・やらないについては注目されてるけど、「学校の仕様」については教えないのだろうか。「教室に入る」「席に座る」「先生の話を聞く」は、「よみ・かき」「数を数える」より、もっと単純で容易なはずだと思うけど。教えられてるけど、やらないのかなぁ。

もう一つの伏線

小学校入学前に3割以上の子供がインターネットを経験~gooリサーチ (2006年の記事)

子供がインターネットを利用し始めた年齢は、就学前の「3歳~5歳」が26.9%と最も多い。「0歳~2歳」の7.5%と合わせると34.4%となり、2005年の調査(15.8%)の2倍以上となった。

これには驚いた。前の会社の先輩の息子さん(3歳か4歳だっけか)は、ぷーさんのタイピングソフトでローマ字入力をマスターして、検索サイトで自分がみたい写真を検索して喜んでいた。なんて話も聞いてたんですが、こんなにも進んでいるとは。

よーし、こうなったら幼児向けの学習サイト作るしかないんじゃないですか!

長くなったので別エントリーへ続きます。妄想システム:学級崩壊撲滅!幼児向け学習サイト「いいこ☆いいこ」

保育士になりたい-生きる上で必要なこと

Think 4 Comments »

そんなに頭が良くないので子供っぽい文章しか書けないけど。最近、頭のなかで「本当に必要なこと」って何だろうって考える事が多くて。。。

衣食住

  • 衣服は生きる上で必要か。最低限の衣服はYes.裸でも(ryという極論は置いといて。
  • 食料は生きる上で必要か。Yes.
  • 住む所は生きる上で必要か。暖がとれること。身体・所有物の安全が確保できること。

社会として

これだけではさすがに原始人なので、もう一歩進む。

  • 医療・・・Yes.
  • 法律・・・Yes.なきゃないで無法地帯と化すのも嫌だし。
  • 警察・・・同上
  • 消防・・・Yes.

その他いろいろ。こういう(社会を構成するもの?こと?の)勉強もしたいなぁ。何学になるんだろ。社会学?

そして自分

ネットは生きる上で本当に必要か。Noだと思ってしまった。高級な料理と一緒だ。別になくても生きていける。新しいコミュニケーション?確かに便利になった。けど、それ以上でもない。なんだか儚く思えてしまった。

話は飛ぶんですが

子供好きなんです。保育士さんのブログとか読んでると、サービス残業・子供を叱り付けてしまった(悩む)・向いてないんだろうか・etc と勿論楽しいばかりじゃないことは重々承知だけど。

保育士になりたい! ~男性保育士日記~

無事卒園式終了!

いや~、たくさん泣かせてもらいましたわ・・・。

みんな、ありがとうね!! (*^。^*)

なんか、いいよねぇ。はぁ。ただの「無いものねだり」なのか。ターニングポイントなのか。

PS.仕事関係の人へ

もちろん、仕事はちゃんとやりますから、心配しないでください><

ソフト業界に来た新人さんへ

Think No Comments »

IT業界に来た新社会人に本音を言っておく

本音が好きな自分は、こういう人って好きです。聞いたって本音をさらけ出してくれるまでの人間関係を築くのは難しいですから。内容は頷ける事が多いので読んでおいて損はないです。

けどね、別の人の関連エントリー。

IT業界に来た新人に、僕からも本音を

正直なところ、全員に多くを期待してはいません。次代を担うことができるのは50人につき2~3人もいれば上出来です。多すぎくらいかな。

なんだか悲しいです。確かに、スーパーマンみたいな人(なんかすげえ人)って50人に2,3人もいないのが現実だと思うけど、これから明るい未来を想像しながら、どきどきと不安でいっぱいの新人君に、この現実(本音)をさらけ出しちゃうのは・・・なんだか悲しいです。

言われなくても何年かすると気づけるんだし、伝えるタイミングは「そこ?」って思っちゃいました。

そんな悲しいことを言われた新人さんには次のエントリーを送ります。

あまりに基本的な人生の4つのルール | Lifehacking.jp

人生の4つの基本ルール

  • 楽しもう
  • 人を傷つけてはいけない
  • 敗北を受け入れない
  • 幸せになるよう努力する

ミクロな話から突然マクロになっちゃうけど、この業界(に限らなくても)そんなに難しくない。4つのルールを原則に物事を考えれば、後はすべて必然だ。プライベートで勉強するのも、本を買って読むのも、コミュニティに参加するのも、努力するのも幸せになるためだ。

それでは、肩の力を抜いて。ね。一緒に頑張ろう。

最後に

ようこそ最高にわくわくする業界へ。

「ふつうのHaskellプログラミング」読書会@CSNagoyaに行ってきた

Haskell, 雑記 2 Comments »

toyoshi さんに誘われて「ふつうのHaskellプログラミング」読書会@CSNagoyaに行ってきました。

感想を書くまでが勉強会!(読書会)と、どこかで読んだので書いておこう。

雰囲気

参加人数は自分を入れて7名。テキスト「ふつうのHaskellプログラミング」を第2章から1節ずつ1人が読み、サンプルのコードを実際に打ち込んで、実行。素朴な疑問などを話し合いつつ、解決しつつ、次の節へ 。という感じで読書会は進んでいき、第3章の最後まで終えることが出来ました。

21時頃には終えて懇親会へ。PerlでSNS作っちゃう不動産屋さん、OCaml でお仕事をされている方、自分と同じように業務系(?)の方、Web屋さん、などなど多種多様で面白かったです。

学んだこと

  • main アクションから実行される。Haskell は大文字小文字を区別するため小文字の main であること。
  • do 式で束ねる複数の(アクション)はインデントを揃える。この規則を「レイアウト」とか「オフサイドルール」と言う。これが噂のオフサイドルールかぁ。
  • do 式を使うと上から順にアクションが実行される。
  • リスト重要。文字列は文字のリスト。[] 空リスト。
  • 「$」演算子。括弧に展開できる。これは結構好きかも。
  • 型推論は個人的にコンパイラすげー。と思った。
  • 関数定義は、「関数名 :: 第1引数 -> 第2引数 -> ・・・ -> 返り値の型」 必須ではない。
  • [a] の時、a は型変数と言い「何でも来い」多相型。
  • 「[a] -> a」の時、引数の型と返り値の型は同じじゃなきゃダメ。
  • 高階関数。関数を引数にとる関数。map 関数だと「map :: (a -> b) -> [a] -> [b]」の「(a -> b)」が引数にとる関数の定義の条件。
  • パターンマッチ。引数の値のパターンごとに関数定義を書くことができ、上から評価されパターンにマッチした関数が選ばれて実行される。
  • リストに対するパターン。「(x:xs)」は、リストの最初の要素に x が、残りに xs が束縛される。定石っぽく覚えておく。
  • Haskell には for や while がないので、これ使って再帰、再帰、再帰。

エレガントだなぁ。仕事でどうっていうレベルではなくて、純粋に楽しい。

勝手にふりかえり(KPT)

Keep・・・和やか雰囲気。質問しやすい。

Problem・・・意外に明るくないと言われたw 明るく音読します><

読むときに単純に読み上げるよりも自分の言葉でと言われたんですが、結構難しい。

Try・・・予習しとくと理解してる分、分かりやすい言葉で説明できるし、みんなのためにも良いかも><

次回は

隔週なので次回は、4/13(日)ですか。続きが楽しみー。もし興味を持たれた方は、まだ始まったばかりなので是非参加してください>< 詳しくはこちら。toyoshi さん、こんな感じで良いですか:-)

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン