<   2008年 04月 ( 10 )   > この月の画像一覧
いろいろな言語に触れてみるべき。自然言語にしろ、プログラミング言語にしろ。

 小学生にまで英語を教えることは、いろいろ議論があるとは思うけれど、日本語以外の言葉の存在を知ることで、言語が単なるメディアであり、その表現に対する客観的な見方を意識させることに価値がある、と僕は思う。そして、この意味では、英語に限らず、幾つかの外国語を教えても良いと思うし、それを国語の学科の中に取り入れるべきだとも考える。

MORI LOG ACADEMY: 英語と国語

「初心者のための・・」系を読んでも、サンプルコードというものを見ても、何のこっちゃ分からずで*1、perlにしようかPythonにしようかjavaにしようかC++にしようかとか言ってる場合じゃありません。C++とC#は別クチなんすかね?ですよね。ギャー!

プログラムっておいしいの? - iGirl


 複数のプログラミング言語に触れていると分かるけど、確かに、言語というのは単なるメディアでしかない。だから、一つの言語にこだわるよりも、たくさんの言語(考え方)に触れて、思考の幅を広げる方がよっぽど有益だと思う。

 何を身につけようか迷ってるなら、とりあえず全部さわりだけでもやってみた方が良いんじゃないだろか?知らないものを好きにはなれないわけだし。
[PR]
by fkmn | 2008-04-25 23:36
Super Mario Bros. on Ruby
スーパーマリオブラザーズをRubyで作ってみた - I am Cruby!

Ruby/SDL で動くスーパーマリオを作ったとの事。すげー。

これはぜひとも動かしてみたい!、ということで、Mac (10.4) で 動かそうとしてみました。
が、うまく動かず・・・。

実行したコマンドは以下のような感じ。

まず、SDL まわりで必要な者を、MacPorts でインストール。

% sudo port install libsdl
% sudo port install libsdl_image
% sudo port install libsdl_mixer
% sudo port install libsdl_ttf
% sudo port install rb-opengl

そのあと、gem で rubysdl をインストール。

% sudo gem install rubysdl

例のファイルをチェックアウトして、以下のページを参考にちょっと修正。
% svn co http://svn.coderepos.org/share/lang/ruby/mariobros
参考:SUPER NARIOをプレイしてみた(最速レビューをめざして) - きみのハートを8ビットキャスト

そして、main.rb を実行すると、なぜか sdl の require でこける・・・。

% ruby main.rb
main.rb:9:in `require': no such file to load -- sdl (LoadError)
from main.rb:9

しょうがないので、ソースを落としてきてインストール。

% tar zxvf rubysdl-1.3.1.tar.gz
% cd rubysdl-1.3.1
% ruby extconf.rb&& make && sudo make install

これで、sdl の require は通るようになった。
が、しかし、main.rb を実行すると、盛大にエラーが発生・・・。
%  ruby main.rb
2008-04-23 23:48:38.360 ruby[13393] *** _NSAutoreleaseNoPool(): Object 0x375650 of class NSLock autoreleased with no pool in place - just leaking
2008-04-23 23:48:38.361 ruby[13393] *** _NSAutoreleaseNoPool(): Object 0x3760c0 of class NSCFNumber autoreleased with no pool in place - just leaking
(中略)
./mario/gamestart.rb:135:in `main': uninitialized constant SDL::Mixer (NameError)
from ./mario/gamestart.rb:169
from main.rb:17:in `require'
from main.rb:17

というか、マリオ以前に、rubysdl のサンプルコードが動かないっす。
動かすまでには、ちょっと時間がかかりそう・・・。
[PR]
by fkmn | 2008-04-23 23:55 | IT
Ruby で、連続した数列を範囲形式にまとめてみる

問題
 並んだ数字を確認用にわかりやすくする為に、ソートされた数字の列をハイフンで繋ぐにはどうすればよいでしょうか?
(中略)

仕様

  • 数値は、半角スペースで区切られた文字列で渡されます。
  • 続いている部分は、最初の数値と最後の数値を-(ハイフン)で繋いだ表記にします。
  • 連続が1回の場合(前の数も後ろの数も連続でない)は、-(ハイフン)では繋ぎません。
  • 出力は、「,」(カンマ)と半角スペースで区切られた文字列でなければなりません。

Rubyでどう書く?:連続した数列を範囲形式にまとめたい - builder by ZDNet Japan

「Rubyでどう書く?:連続した数列を範囲形式にまとめたい」をやってみる - kenmazのはてな」経由


オイラならこう書くかなぁ(こっちの方がベターだ、という意味じゃないです)。

def nums2str_range(str)
nums = str.split(' ').map { |i| i.to_i }.uniq.sort
nums.inject([[nums.shift]]) { |r, s|
if r.last.last.succ == s
r.last << s
else
r << [s]
end
r
}.map { |i|
i.size > 1 ? [i.first, i.last].join('-') : i.first
}.join(', ') + '.'
end

str = '1 2 3 5 7 8'
puts nums2str_range(str) #=> 1-3, 5, 7-8.

str = '1 3 4 5 7'
puts nums2str_range(str) #=> 1, 3-5, 7.

一応解説。以下のような感じの事をやってます。
  1. 文字列を受け取って、半角スペースをデリミタにして配列へ変換(ついでに、重複を排除して、ソート)
  2. 数値が連続する部分ごとに配列を作成(以下のような感じ)
    [[1, 2, 3], [5], [7, 8]]
  3. 各配列ごとに、配列の長さが1より大きければ最初と最後の要素を取り出してハイフンで繋ぐ。



いじょ
[PR]
by fkmn | 2008-04-21 23:55
【感想】世界樹の迷宮II 諸王の聖杯
世界樹の迷宮II 諸王の聖杯(特典無し)
Amazon.co.jp: 世界樹の迷宮II 諸王の聖杯(特典無し)のレビュー: ゲーム

 だらだらとやり続けて、やっと先日クリア(ただ、いろいろとやり残しあり)。

 言わずと知れた(?)ウィザードリータイプのRPG「世界樹の迷宮」の続編。

 ゲームシステム面では、細かい改良(マッピングシステム、操作キーの割当、等)が加えられていて遊びやすくなっている。が、一方、バグやゲームバランス等に調整不足の感があり、ちょっと残念だった。ただ、一番重要な、ゲーム中の緊張感は前作から変わり無し。この辺は一安心。

 けれども、さすがに二作目ともなると、少々マンネリ気味かも。もし、三作目が出るのであれば、思い切った変化を期待したい。ジョブを全入れ替えするとか、ね。
[PR]
by fkmn | 2008-04-20 23:55
Perl で文字列中の変数名を明示的に指定する方法

文字列に式が埋め込めない。

Python の嫌いなところ - kwatchの日記

これはほかの言語も Ruby を参考にするべきだと思う。

Perl のは変数の直後に識別子に含めていい文字が来る場合にどうしていいかよくわからないのだよな。こんなん?
my $x = "a";
my $y = "$x\_b";

Pythonはダメなところは信者がアレすぎるところ - odz buffer


 変数の直後に識別子に指定できる文字が来てしまう場合は、展開して欲しい変数を ${変数名} という形で指定してやればおk。

 例えば、こんな感じ。
my $x  = "a";
my $xy = "b";
print "${x}y"; #=> ay

 でも、Ruby みたいに式を含めることはできないなぁ。


 Perl6 だと、ダブルクオート中の {} が Perl の式として展開されるらしい。

my $foo = 3;
my $hoge = "{$foo + 4}";
say $hoge; # 7

Pugs で Perl6 を体験する


[PR]
by fkmn | 2008-04-16 23:55 | IT
プログラム仕様書についてあれこれ
他の人たちのエントリにかこつけて、自分の言いたいことを言うテスト。

例えば、誰が書いても同じコードにするために、プログラム設計書(内部設計書)を今、書かせているとしたら、そんな無駄なものはやめたほうがいいと思う。

浜口さんに贈るSI業界を良くする方法 - ひがやすを blog

 うーん、本当に「誰が書いても同じコードにする」ためにプログラム設計書を書いているようなところがあるんだろうか?寡聞にして僕はそういう現場を知らないです。でも、もし本当にそういうことをやっているのであれば、確かにそれは無駄以外の何者でもないなぁ。

プログラム設計書は、自然言語で書きます。プログラムは、プログラミング言語で書きます。どっちの言語が、プログラムを書くのに適しているかといえば、誰が考えても、プログラミング言語ですよね。

浜口さんに贈るSI業界を良くする方法 - ひがやすを blog

 でも、プログラム設計書も、あまり自然言語でだらだら書くのは良くないですよね。図なり表なりを活用して、自然言語の部分はなるべく少なくするべきかと。

プログラム設計書を作るのは「誰が書いても同じコードにするため」だけでなく、元請けがレビューするためでもあります。元請けがプログラミング言語を読めないので、日本語に落としてレビューします。コードを書いてからプログラム設計書を作ることもあります。

仕様書やプログラムを書く大変さ - __int128 Geek Not Found

 これこそ無駄。日本語とコードが1対1で対応するようなドキュメントなんか必要ない。
 あぁ、そういえば、僕の周りでも、こういうドキュメントとコードの対応作業に追われているところがあったなぁ。当然のように、そこは泥沼化してるけど。

今のうちのえらい人の考えは、技術力(プログラミングを含む)は、うちの会社の足腰だから、技術力をきちんと持ったSEを育てることが強いISIDをつくるという考えです。

プログラミングできない元請けがプログラム設計書をレビューするという矛盾 - ひがやすを blog

 そうそう、「足腰」ですよねぇ、技術力って。腕ばっかり使っているように見える野球のピッチャーも、実際には、足腰が重要な役割を果たしているわけで、つまり、そういうことだと思う。
[PR]
by fkmn | 2008-04-15 23:55 | IT
Re: プログラマーに比べ、バイオ研究者に飛び抜けた才能が現れない理由のひとつ
元分子生物学専攻で、ドロップアウト(?*)を経て今IT貧乏(笑)のオレがきましたよ(参考)。
(* いや、ドロップアウトというか、まだライフサイエンス業界には残ってるつもりではあるんですけどね。)


プログラマーに比べ、バイオ研究者に飛び抜けた才能が現れない理由のひとつ - バイオ研究者見習い生活 with IT

で、なんか書こうと思ったけど、個人的には、Hashさんのまとめの意見にほぼ同意。

  • 楽しみながらあれこれ試す風習がない
    • その基盤が未だない
  • ITみたいに、「思い立ったときに何処でも誰でも試行錯誤」ができない。
    • 人工的に生命をあれこれするわけだから、バイオハザードを考えると無理。
    • 施設と知識がなければ、そもそものスタートラインにたてない
      • 対してITは、たとえば僕が自宅の古いWindowsにLinux入れたいと思ったらWebに必要なリソースと情報がすべて揃っている
  • 試行錯誤の1サイクルが長い
    • 遺伝子組み替えて一晩、培養して一晩…
    • 1年研究してても、方向転換は1,2回まで
  • 扱う対象が生命であるため、おもしろがってハックすると倫理的にいろいろ言われる
  • 操作とその効果がすぐ目に見えない。
    • 視覚化それ自体が研究テーマになるくらい


 ただし、一カ所だけツッコミ。
でも現状は、プライベートなバイオロジーという考え方自体が不可能なわけで。
これはそんなことないですよ。Make Vol.2 では、「バックヤード・バイオロジー」という特集が組まれています。表紙にはでかでかと「生物をハックする」という文字が。家庭にある材料で、電気泳動とかPCR装置を作ったりする方法が紹介されてます(サンプルPDF はこちら)。

 こういう「バックヤード・バイオロジー」みたいなことが一般的になってくれば、日本からもいろんな才能が出てくるのかもしれませんね。
 

Make: Technology on Your Time Volume 02
Amazon.co.jp: Make: Technology on Your Time Volume 02: オライリー・ジャパン: 本
[PR]
by fkmn | 2008-04-14 23:55 | ライフサイエンス
【感想】はじめての課長の教科書
はじめての課長の教科書
Amazon.co.jp: はじめての課長の教科書: 酒井穣: 本

 いままで、「何となく」で認識されてきた課長の仕事のポイントや課長に求められるスキルを明文化した本。いままで無かった、という意味では新鮮だった。ただし、書かれているのは、
  1. 以下に部下のやる気を引き出すか
  2. 平社員と経営者の間の情報伝達を以下にスムーズにするか(両者間の通訳としての役割を以下にこなすか)
といったいわゆる普通の中間管理者像で、そういう意味では「ふーん」な印象。


以下、印象に残った文章のメモ。
外国語を知らないものは、自国語も知らない - ゲーテ
(p. 3)
本書のテーマに直接関係ないけれども、この言葉は印象に残った。この言葉は、外国語と自国語に限らず、あらゆるものに当てはまるんだろう。会社だったり、業界だったり、文化だったり。

どれだけ多くの仲間を助け、仲間からの信頼を集められたのかを誇れるようになれれば、その人物は世界中どこでも通用するでしょう
(p. 201)
これは良い言葉。僕が尊敬する人は、すべからくここでいわれているような人物だと思う。こういう人間になりたいなぁ。


 ちなみに、どうでもいい話かもしれないけど、著者が若い(1972生)ことに驚いた。もっと年配の、中間管理職という仕事の酸いも甘いも知り尽くした人が書いた本だとばかり思い込んでいたので。世の中の課長さんは、この若い著者の言うことに耳を傾けるのか、ちょっと心配かも。
[PR]
by fkmn | 2008-04-12 23:55
12歳が jQuery について語る
YouTube - jQuery
jQueryについて語る12才 | Weboo! Returns. 経由

 Google Tech Talks で jQuery について語る少年。若干12歳なんだとか。堂々とした喋りっぷりといい、僕なんかよりもよっぽどプレゼンが上手だし、英語も上手(英語は当たり前かw)。すごいわ。

 動画の途中でちらっと客席が映るんだけど、Google Tech Talks って、意外と小さいところでやってるのね。参加者も20人程度といったところ。トーカーによって会場の大きさが変わったりするんだろうか?
[PR]
by fkmn | 2008-04-08 23:43 | 日記
【感想】デザイン思考の道具箱—イノベーションを生む会社のつくり方
デザイン思考の道具箱―イノベーションを生む会社のつくり方
Amazon.co.jp: デザイン思考の道具箱—イノベーションを生む会社のつくり方: 奥出 直人: 本

 イノベーションを継続するための方法論が詰め込まれた本。具体的な名前は明かされていないが、本書の執筆に当たって、この本で述べられている方法を試みた企業もあるらしい。

 以下、個人的に気になった部分のメモ書き。
  • 「デザイン思考」とは顧客主体のイノベーションである
  • 2種類のイノベーション
    • 古いイノベーション論(マクロレベル): 「イノベーションのジレンマ」で述べられているもの
    • 新しいイノベーション論(ミクロレベル):顧客重視、研究と開発とニーズの結びつけ、イノベーションを継続的に行うための方法論、等
  • タンジブルとインタンジブル
    • タンジブル:触れる事が出来るもの
    • インタンジブル:触れる事が出来ないもの
    • インタンジブルなもののマーケティングは難しい。インタンジブルなものをタンジブルなもので表現する。
  • プロトタイプ思考、プロトタイプ重視
    作る事で考える(build to think)
  • フィールドワークの重要性
    何が問題なのかはアンケートをとっても分からない(人間は、日々のややこしい作業を無意識に行っているので)
    # Henry Fordの言葉「もし私がカスタマーに何が欲しいかと尋ねたら、彼らは『もっと早い馬が欲しい』と言っていたでしょう」を思い出した
  • 創造的マネジメントの最大の障害は縦割りの事業部制


 本書は、どちらかというとハードウェア的なもの作りを念頭においているにも関わらず、述べられている内容は、最近のソフトウェア開発方法論にかなり近いところが面白かった。特に、プロトタイプを重視している部分。「作っては壊す」過程を繰り返す事が出来るのはソフトウェア開発の専売特許だと思っていたけれど、材料や方法を工夫すれば、ハードウェアでも同じ事が充分可能で、かつそれが有効だとのこと。

 もしかすると、ハードウェア設計とソフトウェア設計というのは、思ったほどには違わないのかもしれない。
[PR]
by fkmn | 2008-04-01 23:55 | 読書記録


とあるWebアプリケーションエンジニアの日記
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
カテゴリ
以前の記事
ブログパーツ
リンク
検索
タグ
最新のトラックバック
プログラミングが「出来る..
from とりあえず9JP?
Genographic ..
from ナンジャモンジャ
ジュセリーノ
from ありの出来事
くちこみブログ集(ライフ..
from くちこみブログ集(ライフ)(..
以降、丁寧語で行こう!
from エッセイ的な何か
その他のジャンル
ファン
記事ランキング
ブログジャンル
画像一覧

fkmnの最近読んだ本 フィードメーター - フッ君の日常 あわせて読みたい AX