こぶたのラッパ » 6月 2011

Monthly Archives: 6月 2011

プログラミング 学習

最高の教育とは

Published by:

最近ビル・ゲイツ氏の教育関係の記事をよく目にしますが、すごく真剣に教育のことを考えているんでしょうね。

ビル・ゲイツが考える世界一の大学はどこにある?
これから5年間、Webで世界一良い講義を見つけ出すことができるようになるでしょう。しかも無料で。それは、単一の大学で学ぶよりも、はるかに良いでしょう。

 
私はここ最近、教育のあり方というものについて、必ず梶川泰司さんの書かれたことを念頭に置くようにしています。
その文章をの全文を、ここに転載させていただきます。

教えること – 犬のしっぽ ブログ
最高の授業には最高の教師と最高の生徒が必要だ
という前提から入学制度が維持されている。
彼らは入学試験の難易度を誇りにしている。

最高の教育は、子どもが子どもを教えるプロセスにある。
教師も教科書もそれほど重要ではない。
宇宙についてほとんど知らないと言う前提が
そのプロセスを生成する。

宇宙の統合性について知りたいという要求が
しばしばこどもに新しい言語を生成させる。

その場面に教師が立ち会うことはほとんど稀だ。
この自己教育の経験が彼らの子ども時代にすでに
欠乏しているからである。

 
最高の教師(もしくは最高の教材)+最高の生徒こそが最高の授業を作るという発想は、多くの教育の場で見つけることが出来るのではないでしょうか。

私も新社会人の方向けにプログラミングを教えるという仕事をしていますが、受講生同士による学びあいや発見の重要性、テキスト至上主義による弊害は身にしみて感じています。

本来プログラミングなどの専門知識を学ぶには、自己教育+経験(フィードバック)こそが有効だと思います。
専門知識は、教師から生徒に向けた、テキストに書かれている言葉だけでは伝わらないことが多いように感じます。
学ぶ本人が、「自分が理解する」という意識をもち、そこを教師や教材がサポートするということが肝心ではないでしょうか。

それでも、中には自己教育の経験を持たないままに社会人になられた方もいて、テキストがあっても、教師がいても、はたまた受講生同士の学びあいの場をもたせても、「自分が理解する」ことを理解していない方は、一歩も先に進めないのです。

ゲイツ氏は、高校3年生までは物理的な学校が必要ということを述べており、大学というものが日本と海外では役割や性格が違っているということも含めると、Webこそが最高の「専門知識の」教育を提供するということを伝えていらっしゃるのだと思いますし、私も同意です。

しかし、Webを介した専門知識教育を享受できるのは、自己教育のすべを持っているひとだけではないでしょうか。
日本では特に、自己教育そのものを体得することが出来る教育体系になっていないと実感しています。
幼児から大人になるまでの間に、自己教育というものを経験できる世界になるよう、私もいつか何かの形で貢献できればと思っています。

UI コンピュータ デザイン

マウス→タッチへの移行。新インターフェースは何から何まで変えるのか。

Published by:

Windows 8とMac OS Lion、時代は「マウス」を遺物とする?!
個人的には「マウスは死んだ」と思っている。むろん、まだ死に絶えてはいない。しかし歴史は既に動き出していると思うのだ。

 
新インターフェースとして、マウスからタッチへと移行が本格化しつつあります。
以前「(1) PC3.0を予想してみた:キーボードとマウスに変わるもの」でも書いたように、キーボード&マウスというオジサン世代(数十年後にはおじいさん世代)のツールは少しずつ無くなっていくのではないでしょうか。

上の記事を書いたときには、まだ自分でタッチパネルを使っていなかったのですが、いざEee Topを購入してタッチ操作を楽しんでみて分かったのは、据え置き型コンピュータのパネルをタッチするのは疲れるということです。
腕を常に上げ続けないといけない!

2009年当時欲しかったのはまさにiPadそのもの(タッチパネル式のタブレット)で、iSlateという名前で出る出ると噂され続けながらも結局Appleが出してくれず、仕方なくEee Topを買っちゃったという経緯があります。

その体験がchromeTouchというソフトウェアを作るきっかけにもなったのですが、タブレットではない据え置き型パソコンでは、Appleのマジックマウスのようなマウス+タッチが最良解のようです。

今後はタッチパネル式のタブレットか、据え置き型コンピュータ+マジックマウスの2択という流れになりそうですが、いずれの場合にも2つの問題が残っています。

それは、

  1. 指がマウスカーソルほど尖っていないので、細かい部分をピンポイントでクリックできない
  2. マウスオーバー(クリックしていないけどカーソルは動かしている)が表現出来ていない

という2点です。

問題1に関しては、iPhoneやiPadを使っている人は、ズーム機能によって解決できているのでしょうが、どうもそれが面倒に感じてしまうのです。
そもそも操作に時間がかかるし、操作している姿も何だか艶かしすぎるといいますか・・・

指に専用のキャップみたいのをつけるのも実はあり?

あほかと言われそうですが、意外にアスクルのカタログなんかにもいつか登場するかもですよ。
ネーミングは「Digit Cap」とか。

問題2は、MicrosoftのKinectの小型版みたいのをタブレットかマジックマウス様のものに搭載して、指を近づけるとカーソルっぽいのが画面に出現して、マウスオーバーを再現してくれる・・・というのが私の理想です。
指を触れないと操作できないという壁は、2012年くらいにはさっさととっぱらって欲しい!

とにもかくにも、Windows8とMac OS Lionによってぐいっと一歩その未来に近づいたわけですので、次のステップは本当にもう間近に迫っていると感じています。

コンピュータ 日常

肥大化したMS-Wordファイルを小さくする

Published by:

今、Wordの編集をして保存したら、もともと4MBくらいのファイルサイズが8MBと2倍に膨れ上がってしまいました。
修正したのは一文追加しただけなんだけど。。

なんだこれ、と思いこれまでのバックアップファイルを確認してみたら、突然ファイルサイズが倍になっているタイミングが何度かありました。

ぐぐってみると、「高速保存のチェックを外す(→もともとチェックされていなかった)」、「版の管理でバックアップが残っているのを消す(→何もバックアップされてない)」などありましたが、解消できませんでした。

そこで、

  1. Wordファイルを新規に開き、
  2. 問題のWordファイルを「全て選択(Ctrl-A)」してコピー、
  3. それを新規Wordに貼りつけすると、

文書の縦横やマージンを含めてきちんと元の文書を保っています。
で、それを保存すると、360KB・・・。20分の一以下になってしまいましたことよ。
インデントなどがずれるところもありましたが、そこは手で修正しました。

というわけで、Wordファイルが重くなったら、新規ドキュメントに貼り付けましょう。

コンピュータ

Webプログラミング史

Published by:

このドキュメントについて

Webプログラミングの歴史はせいぜい10数年と浅く、古くはPerlを使ったCGIやJavaアプレット、最近ではHTML5やスマートフォン向けのアプリ開発などに話題が集まっています。
Webの進化の歴史は、2000年ごろに検索サービスを開始したGoogle検索の歴史とも重なるため、キーワード検索を使って過去の文献を探すこともできますが、時系列に沿ってWebの進化をまとめた資料というものは意外に多くありません。
そこで、1999年ごろからWeb開発に興味を持ち続けている当事者の観点からWeb開発の歴史を残しておくことは、多少なりとも意味のある試みと思い、この度「Webプログラミング史」としてまとめることにしました。

Webプログラミング史

黎明期(~1999年)

私自身がWebプログラミングをはじめた1999年より以前については、正直多くを語ることができませんが、Perlを使ったCGI(アクセスカウンタ、掲示板)や、JavaScriptを使ったページのにぎやかし程度だったように思います。

当時はWebプログラミングよりは、OSインストール型のソフトウェアがほとんどで、お気に入りのソフトをインストールしては、ローカルPC上で利用するという考え方が一般的でした。

開発環境や実行環境も整備されていなかったため、数多くのバッドノウハウが生まれ、Perl職人、JavaScript職人といったある種の特殊技能として見られることが多い時期でした。

検索エンジンシステム大流行の巻(2000年~2002年)

Google以前はどうやって情報を検索していたのでしょうか。

コンピュータを2000年以降に使い始めた方には考えられないかもしれませんが、Google登場以前は、「キーワード検索」という概念が実質ありませんでした。
現在でいうアルファブロガーのような方たちが、有用なサイトのURLを集めて、リンク集を作成し、そこからツリー上にたどっていく方法が一般的でした。
Yahoo!はそこに商機を見出し、各Webサイトオーナーに有料でリンクを販売し、カテゴリ別にあらゆるサイトへのリンク集を用意することで、一大ポータルサイトの座を獲得するにいたりました

キーワード検索機能を提供するWebサービスもあるにはありましたが、精度は低く、対象サイトも少なく、一回の検索に5~10秒近くかかるような代物だったため、一般的なサービスとしては認識されていませんでした。

Googleが登場したのは、まさにそんな状況だったのです。
あらゆる情報をコンマ数秒で表示してくれるGoogleに世界は熱狂し、検索エンジンブームが到来。猫も杓子も検索エンジンを作成する時期が続きます。
コンピュータ雑誌では検索エンジンの作り方を特集し、特に日本ではNamazu(当時最先端の日本語全文検索システム)を使えないとモグリ的な風潮が広まりました。

サーバーサイド・プログラミング大流行の巻(2003年~2004年)

このころには、動的なコンテンツを表示するためのWeb用言語として、PHP、Perl、Java Servletが出揃い、それぞれが猛烈な勢いで進化していきました。

PerlではCPANサイトの利用が活発化し、PHPはユーザープログラマの要望にこたえてありとあらゆる機能が組み込み関数化され、Java Servletではデザインパターンを駆使した開発スタイルが大流行しました。

それらの開発言語とは別に、データ構造としてのXMLや、分析・設計言語のUML、HTMLにデザインを適用するCSSなど、関連技術が毎月のように登場し、発展し続けたため、開発関係者はとにかく勉強しまくって、エンジニア30代限界説などがまことしやかにささやかされ始めたのもこのころです。

サーバーサイド・プログラミング洗練期(2004年~2005年)

開発言語としてRuby on Railsの採用が増え始め、PHPはPearやZend Frameworkといったフレームワークの利用が一般的になり、データベースへのアクセスはO/Rマッピングで行うといった、一から全部を作らず、これまで培われてきた技術や方法論を集約し、誰でも同じようにコーディングするような開発スタイルが定着してきました。

Javaの開発においても、アスペクト指向やDI(依存性の注入)という画期的な「発明」により、これまでに蓄積されたServlet開発の問題点を一掃することに成功しました。

Web開発の未来としては、プログラミングの自動化やメタ言語・メタメタ言語による設計など、より抽象的な方向に進むかのように思われていました。

Ajaxの台頭(2005年~2006年)

2000年にWebの世界を一変させたGoogleが、今度はWebの進化の方向を、誰も考えていなかった分野へ切り替えてしまいました。
それが、Googleマップのリリースです。

Googleマップのリリース日以降、開発者たちは新種の珍獣でも見つけたかのように、GoogleマップのHTMLソースを調べまくりました。
そこにFlashのswfファイルが読み込まれておらず、JavaScriptによって作られていることを発見してからは、オンライン・オフラインを問わずいたるところでGoogleマップ勉強会が催され、「Ajax」という用語が作られてからはすさまじい勢いで関連サービスが生まれました。

JavaScriptは90年代からJavaScript職人によって利用されていたものの、ブラウザ間の仕様の不統一がたたって、ほとんど黙殺され続けてきた不遇の言語ですが、Googleマップ以降は2011年現在にいたるまで、重要言語としての地位を保ち続けています。
ただ、ブラウザ間のJavaScriptエンジンの実装の差異は大きく、統一的にコーディングを行うためのフレームワークの登場が望まれ続け、この時期開発されたPrototype.jsが最初のデファクトスタンダードとなりました。

Web2.0という用語が新聞に載り始めたのもこのころで、新たな商機を見出した企業が作って作って作りまくりました。

Webの進化が止まった?(2007年~2008年)

Web2.0という用語が大衆化し、サーバーサイド・プログラムの画期的な進化も現れず、クライアント・プログラム用のライブラリとしてはPrototype.jsに代わってjQueryの一人勝ちが見え始めてきたこのころ、「もう新しいWebサービスは生まれないのではないか」という問いかけがちらほらと聞かれるようになりました。

ゼロベースから新サービスを立ち上げるのではなく、GoogleやAmazonなどが提供するAPIを呼び出して、それらのAPIから受け取った情報を組み合わせたマッシュアップサービスこそが新しいWeb開発のスタイルかのように喧伝されました。
Web開発者も、APIが生まれるたびに使い方を学ぶ羽目になるという状況が続きました。

クラウドという用語が生まれたのもこの時期で、Web開発そのものがブラックボックス化している様子をうまく表していると感じられました。

つぶやきを中心に世界が回る(2009年~2011年)

2006年にサービスが開始したTwitterの可能性を、マッシュアップに明け暮れていた企業は見逃し続けていましたが、「ツイート」の魔力は2009年ごろにはもう抵抗できないくらいの勢いになっていました。

世界中のありとあらゆる情報が140文字のトークンとなり、すべてTwitterというブラックホールに吸い込まれていきました。
その影響もあってか、ブログなどでのまとまった形のコンテンツが相対的に減少したように、個人的には感じています。

さらに、TwitterやiPhoneの登場に呼応して、Webアプリという市場が形成され始めました。
Apple社のApp Storeという名称には、商標登録無効を訴える騒ぎが持ち上がるほどに、「アプリ」というキーワードがWeb開発のトレンドになっています。

これまではスケーラビリティー(拡張性、発展性)というキーワードの元に拡大・発展を続けてきたWebが、Twitterやアプリなどのように縮小を始めてきているのは何を示しているのでしょう。
これは未来になってみないと誰にも分からない問いなのかもしれません。

to be continued..

過去Webの歩き方

発行・更新年を意識した検索方法

この文書で見てきたように、Webの開発は二順も三順もしています。
2005年くらいまではキーワードだけによる検索も有効でしたが、サーバーサイド開発が盛り上がった2005年以前の情報は玉石混淆で、本当に現在使うべき方法を見つけることはなかなか難しいものです(クライアントサイド開発に関しては現在がその状況です)。

たとえば、Javaのプログラムでユーザーが入力した文字列の空白チェックをしたいと思います。
検索キーワード「java 空白 チェック」でGoogle検索すると、検索結果の1ページ目に出てくるのは、現在では不適切な情報ばかりだったりします。

代わりに、「java 空白 チェック 2011」と西暦を指定して検索すると、1ページ目の最初の10件のうち、3~4件は有用な情報を見つけることができるようになります。

西暦指定をしても、過去の情報が出てくる場合がありますので、かならずいつ書かれたドキュメントなのかを意識して参考にすることが肝心です。

Q&Aサイトは比較参考程度に

こと開発に関する情報ソースとして、Q&Aサイトで解決できることは稀です。
プロフェッショナルの回答者は少なく、「ググってコピペ」タイプの方が多いため、古い情報を転載していることが非常に多いためです。

アメリカでは専門家がアンサーしてくれるQuoraというWebサービスが2010年にに開始しましたが、上記のような問題を解決しうるのか注目されています。

著者略歴

smilkobuta
プログラミング大好きな九州男児。

最初に作ったプログラムは時間計算プログラム。自作音楽テープを作る際、A面・B面に無駄なく曲を詰め込むために作成した。
開発環境は、父のワープロにおまけでついていた表計算ソフト。

幼いころからの夢であったフランス料理のコックを目指して、調理師専門学校卒業後に渡仏。
その後、製菓の勉強のため上京するも、PCの楽しさに目覚めてSEに転身。

いろいろあって今にいたる。

日常

Gmailのパスワードの変更方法

Published by:

昨日、数百名分のGmailアカウントがハッキングされたというニュースがあり、フィッシング攻撃が原因ということらしいです。
が、フィッシングというのはそもそも利用者側で防がなければいけない問題で、メールのパスワードと同じパスワードを色んなWebサービスで同じにしているのがまずいのです。
xxxx@gmail.comというメールアドレスのパスワードが1234だとして、同じメールアドレスとパスワードの組み合わせで別のサービスを利用する危険性は分かりますよね?

というわけで、私のパートナーにも早速変えさせたのですが、どこで変えていいのか分からないという。
Gmailの画面を見ると、確かに設定の変更方法が分かりにくいんですよね。

他にもTwitterでどうしたらいいのでしょうか・・・・というお問い合わせを頂いたりしましたので、ここで一つまとめておきます。


1. 画面の右上のメールアドレスをクリック

 
画面の右上


2. 「アカウント設定」をクリック

 
「アカウント設定」をクリック


3. 「パスワードを変更する」をクリック

 
「パスワードを変更する」をクリック


です。
パスワードを同じにしている人は、一秒でも早く変更してください!!!