fc2ブログ

中の人の徒然草260

やっほー♪並列に萌えているインドリです♪今日も並列処理について思いを馳せていました♪
それで蔵書から並列処理が書かれたものをSELECTして読み漁っていました♪
こんな感じで・・・
SELECT Title FROM Book WHERE Keyword LIKE '%並列%' AND BuyFlag = True

検索結果・・・



※デバッグ関係は省略しています


私の脳内データベースへ問い合わした結果内にPrologの技芸(キーワードの場所=序文)があったので「おや?Prolog」と怪訝に思い、早速序文を読んでみたところ(一度読んだ本は大体どこに何が書いているのか分かります)、何とPrologに並列処理機能を付ける研究が行われているという記述がありました(注:この本は自体は並列化を取り扱っていません)という事は、もしかして・・・ Erlangってこの流れを汲んでいるのかな?



この本欲しいー。まだ入手していません。あと並列に関係する本といえば・・・



この2冊が凄く気になります♪ガウディ本を読んで、言語的にアプローチする方法にも興味を持っていましたのでこの3冊は何としても入手したいです♪TBBも魅力的だけど、言語の並列機能も興味深いです。
これらの事を総合して感じたのですが、世間は今関数型言語ブームですがPrologの機能も何らかの形で取り入られるのかもしれません。そうなると、命令型・関数型・論理型の三つが集合する事になります。これは私にとって燃える展開です♪
OZを触って改めて感じたのですが、やはり私は多機能言語が大好きです♪ 私はどうも思考を制限されるのが嫌いです。だから私は何でも出来る言語C++、LISP、Ruby、C#がすきなのです。
これからプログラミング言語はどんどん高度化していくでしょう。その時日本の情報産業はついていけるのでしょうか?今の様にオブジェクト指向すら拒否したり、新人教育をサボったり、丸投げしている状態では、どんどん世界から孤立していくと私は思えてなりません。
皆はそんな沈没船に乗っている必要はありません。
一緒に何でも学習しましょう♪
毎日が楽しいですよ♪

テーマ : 裏事情
ジャンル :

書籍をつつく119-アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣。全てのチームにこの一冊♪

前回思想系の本を紹介したから今回も紹介するピヨ♪
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣
では、毎度おなじみ目次から紹介するピヨ♪


【目次】
“Practices of an Agile Developer”読者の声

第1章 アジャイルソフトウェア開発

第2章 アジャイルの初心
> 1 成果をあげるのが仕事
> 2 応急処置は泥沼を招く
> 3 人ではなくアイデアを批判する
> 4 機雷がなんだ! 全速前進!

第3章 アジャイルさを育む
> 5 変化に付いていく
> 6 チームに投資する
> 7 時が来たら習慣を捨てる
> 8 わかるまで質問する
> 9 リズムに乗る

第4章 ユーザが求めるものを提供する
> 10 顧客に決断してもらう
> 11 設計は指針であって、指図ではない
> 12 テクノロジの採用根拠を明確にする
> 13 いつでもリリースできるようにしておく
> 14 はやめに統合、こまめに統合
> 15 早いうちにデプロイを自動化する
> 16 頻繁なデモでフィードバックを得る
> 17 短いイテレーションでインクリメンタルにリリースする
> 18 定額契約は守れない約束

第5章 アジャイルなフィードバック
> 19 天使を味方につける
> 20 作る前から使う
> 21 違いがあれば結果も変わる
> 22 受け入れテストを自動化する
> 23 ありのままの進捗を計測する
> 24 ユーザの声に耳を傾ける

第6章 アジャイルなコーディング
> 25 意図を明確に表現するコードを書く
> 26 コードで伝える
> 27 トレードオフを積極的に考慮する
> 28 インクリメンタルにコードを書く
> 29 シンプルにすること
> 30 凝集度の高いコードを書く
> 31 “Tell, Don’t Ask” ――― 求めるな、命じよ
> 32 取り決めを守ってコードを置き換える

第7章 アジャイルなデバッグ
> 33 ソリューションログをつける
> 34 警告をエラーとみなす
> 35 問題を切り分けて攻める
> 36 あらゆる例外を報告する
> 37 役に立つエラーメッセージを提供する

第8章 アジャイルなコラボレーション
> 38 定常的に顔をあわせる
> 39 アーキテクトもコードを書くべき
> 40 共同所有を実践する
> 41 メンターになる
> 42 答えを見つけられるように力を貸す
> 43 コードの共有には段取りがある
> 44 コードをレビューする
> 45 みんなに知らせる

第9章 終章:アジャイルへ踏み出す
9.1 たったひとつの新しいプラクティス
9.2 窮地のプロジェクトを救う
9.3 アジャイルの導入:マネージャ向けガイド
9.4 アジャイルの導入:プログラマ向けガイド
9.5 これで終わり?

付録A 参考資料
A.1 Web上の資料
A.2 参考文献

天使の助言
監訳者あとがき
索引


この書籍はアジャイルソフトウェア開発の実践を解説したものだっピヨ♪アジャイル開発は話題性があるから、興味を持って調べた人も多いと思う。だけど、よくあるアジャイル開発の本は、実際どうしていいのか分からない本が多かったよね?でもこの本は違うピヨ。アジャイル開発を実践した現場の声がぎっしり詰まっている良本ピヨ♪この本近いうちにバイブルと呼ばれるようになるとボクは思う。
概要はこれくらいにして、この本の詳細を説明するピヨ。この本は章毎の冒頭に考え方の指針が書かれていて、その考えを詳細に説明するために、1節ごとにプラクティスが紹介されているピヨ。この本の目玉は、開発者に対する悪魔の誘惑と天使の声が書かれている点ピヨ♪
悪魔の声というのは、例えば・・・

本書から引用
「技術の変化があまりにも速すぎて、どうしたらいいかわからないんだろ。(中略)変化についていこうなんて、土台無理な話さ」

ってな具合でプロジェクトを破滅へと導く悪魔の誘惑の事ピヨ。
一方天使の声というのは・・・

本書から引用
「あらゆる分野のエキスパートになる必要はありませんが、業界がどこへ向かっているのかは把握しておきなさい。それを踏まえて自分のキャリアとプロジェクトの計画を立てるのです。」

という具合に、正しいアドバイスの事ピヨ。この2つの対比があるお陰で、この本は楽しく読めるピヨ♪
ボクなんか夢中になって一日で読んじゃった♪
思想というとなんだか堅苦しいイメージがあるし、アジャイルをやっていない人も居ると思う。だけど、この本はから読んでおいて損は無いと思うピヨ♪安いしためになるから気楽に読んでみよう♪読者対象は開発関係者全員だからプログラマ以外も読んでね♪特にプロジェクトマネージャーは読むべきだと思うな。
ボクとしては1チームにつき1冊この本を用意することをお勧めするピヨ♪

テーマ : 情報処理技術
ジャンル : コンピュータ

中の人の徒然草259

どうも♪最近忙しくて中々ブログが書けないインドリです♪今日は何を書こうかな♪う~ん、これといってネタが無いから日々感じている事を書きます。
私は常々感じる事があります。それは「現代人は凄くせっかち」だという事です。私は地がおっとりしていますので、「おは」(※おはようございますまで言うつもり)まで言ったら相手がもう前に居ないなんて事よくありました(笑)挨拶も最後まで聞かないとは凄くせっかちです。仕方が無いので、早く喋れるように練習しました。でも、地がそうではないので疲れるんですよね・・・
勿論おっとり屋の私でも仕事モードになるとテキパキするのですが、無駄な動作が多い人が多いのが気になりますし、私生活でも仕事の延長線上でせっかちになっているのが気になります。公私を分けないといざという時力が足りなくなりますし、無駄な動作が多ければ生産効率が落ちます。それに、何をそんなに生き急いでいるのでしょうか?
私も学習しすぎだから生き急いでる(詰め込みすぎ)とかよく言われますが、状況に応じてきっちりキャラを変えます。仕事などでスピードが要求される場面ではスピードを上げ、私生活の様にスピードが要求されない時はゆっくりします。そうしないと、人間の力は有限なので、いざと言う時に力が発揮できなくなり効率が悪くなります。
私は常にデスマーチに見舞われていましたので、常に仕事に終われて心にゆとりが無くなる気持ちはよく分かります。しかし、出勤時に心を穏やかにして周りの風景を眺めるぐらいのゆとりは必要です。貴方は足元の花や空を何時見ましたか?思い出せない人は要注意です。
緩急をつけられるようになってこそプロだと私は思います。心のゆとりを持ちすぎな人は、それはそれで問題なのですが、全く無いのは大問題です。心にゆとりを持ちましょう♪

テーマ : 裏事情
ジャンル :

書籍をつつく118-UNIXという考え方 その設計思想と哲学。開発関係者必携の思想書。

そういえば、思想関係の本を紹介していなかったピヨ。という事で、ボクが大好きな思想書を紹介するピヨ♪
UNIXという考え方―その設計思想と哲学
初めに言っておくけど、これはWindows系開発者も必携の書ピヨッ♪


【目次】
序文
謝辞
日本語版刊行に寄せて
日本語版監訳者より

イントロダクション

第1章 UNIXの考え方:たくさんの登場人物たち
1.1 UNIXの考え方:簡単なまとめ

第2章 人類にとっての小さな一歩
2.1 定理1:スモール・イズ・ビューティフル
2.2 やさしいソフトウェア工学
2.3 定理2:一つのプログラムには一つのことをうまくやらせる

第3章 楽しみと実益をかねた早めの試作
3.1 定理3:できるだけ早く試作を作成する
3.2 人間による三つのシステム
3.3 人間による第一のシステム
3.4 人間による第二のシステム
3.5 人間による第三のシステム
3.6 第三のシステムの構築

第4章 移植性の優先順位
4.1 定理4:効率より移植性
4.2 事例研究――Atari 2600
4.3 定理5:数値データはASCIIフラットファイルに保存する
4.4 事例研究――あるUNIXプログラマの道具袋

第5章 これこそ挺子の効果!
5.1 定理6:ソフトウェアの梃子を有効に活用する
5.2 定理7:シェルスクリプトを使うことで梃子の効果と移植性を高める

第6章 対話的プログラムの危険性
6.1 定理8:過度の対話的インタフェースを避ける
6.2 定理9:すべてのプログラムをフィルタにする
6.3 UNIX環境:プログラムをフィルタとして使う

第7章 さらなる10の小定理
7.1 (1) 好みに応じて自分で環境を調整できるようにする
7.2 (2) オペレーティングシステムのカーネルを小さく軽くする
7.3 (3) 小文字を使い、短く
7.4 (4) 木を守る
7.5 (5) 沈黙は金
7.6 (6) 並行して考える
7.7 (7) 部分の総和は全体よりも大きい
7.8 (8) 90パーセントの解を目指す
7.9 (9) 劣るほうが優れている
7.10 (10) 階層的に考える

第8章 一つのことをうまくやろう
8.1 UNIXの考え方:総括

第9章 UNIXと他のオペレーティングシステムの考え方
9.1 Atariホームコンピュータ――芸術としての人間工学
9.2 MS-DOS――7000万人以上のユーザが間違っているはずがない
9.3 OpenVMS――UNIXへのアンチテーゼ?


この本はUNIX文化に流れる精神を解説した思想書ピヨ♪思想書というと、何だか実践的でないと思われがちだけど、そんな事は無いピヨッ!ある程度の開発経験を重ねれれば思想は開発にとって非常に重要だという事が分かるピヨ。小手先のテクニックは素人でも出来るピヨ。だから小手先のテクニックだけではなく、開発のプロとしての思想を持つ事が肝要ピヨ。
そうは言っても経験が少ない人にとっては、あまり思想の効果が分かり難いと思うからちょっと解説しておくピヨ♪例えば、「スモール・イズ・ビューティフル」はどの様に役立つのかと具体的に言うと・・・

みんなは、テストが難しいコード、理解し辛いコード、バグが多いコード・・・などの問題コードを見たことがあると思う。また、何時まで経っても実装が終わらないという感覚を感じた事があるかと思う。そんな時は「スモール・イズ・ビューティフル」の思想が役立つピヨ♪
「スモール・イズ・ビューティフル」というのは、簡潔に言うと小さいプログラムはいいという事なんだ(詳しくはこの書籍を買って読もう♪)小さいプログラムのどこがいいかって?それは、テストがやり易い、理解しやすい、バグが少ない・・・などの利点があるんだ。プログラマは巨大で長いプログラムを書きがちピヨ。だけど、あまり長いとさっき言ったような問題が生じやすいピヨ。それで、「スモール・イズ・ビューティフル」というわけさ♪

以上の説明で、思想が実際の開発に役立つ事が分かってもらえたと思う。
ボクがこの本を知ったのは書店ピヨ。UNIXに興味を持っていたボクは何となくこの本をとって読んだピヨ。そうすると、直ぐにこの書籍に引き込まれその場で読破してしまったピヨ♪(勿論後で買ったピヨ)というのも、読みやすい文体だし、開発経験5年分に相当する知識が詰まっていると直ぐに分かったからなんだ。
ボクはWindows系開発者だけど、優れた思想はプラットフォームを越えるピヨ♪開発関係者は全員読もう
明日から物事の考え方が変わること間違いなしピヨ♪

テーマ : 裏事情
ジャンル :

中の人の徒然草258

こんにちわ♪インドリです♪時間が経つのは早いもので、つい最近まで蝉が鳴いていて夏ムードだったのに、日が暮れるのが早くなり、夜になると秋の音が聞こえるようになってきました。鈴虫とかの鳴き声はムードがあっていいですよね♪夏に冷房をカけて涼しく読書するのも良いものですが、夜に鈴虫の声を聞きながら読書するのもまた良いものです♪
私は夏の情熱的な雰囲気が大好きなのですが、秋の物悲しい雰囲気もまた好きです。そろそろ秋の兆しが見られるようになってきましたので、皆様も出勤時や帰宅時にちょっと気を緩めて秋を探してみては如何でしょうか?きっといい気分になれると思います。
突然ですが、最近のマイブームは並列処理です♪並列処理って奥が深いですよね♪マルチスレッドプログラミングは業務で沢山してきましたが、それでも並列の真髄はまだまだ分かりません。これからはマルチコアCPUが当たり前の時代になりますので、マルチスレッドを慣れていない人はマルチスレッドプログラミングを、マルチスレッドをしてきた人はより抽象的な並列処理技術(TBBなど)を学習すると良いかと思います。
並列処理って改めて考えると、我々人間が普通にしている事であり、世界で普通に起きている現象なんですよね・・・それにも関わらず案外並列処理は難しいです。ちょっとした事でバグが発生しますし、デバッグもこれまた難しいし、オブジェクト指向設計するのが難しいし・・・色々な困難がそこに待ち受けています。
でも上手に並列処理を行えばパフォーマンスが大幅にUPします♪この快感が癖になりますので、面倒くさがらずに挑戦する事をお勧めします♪みんなでパラレルをエンジョイしよう♪

テーマ : 裏事情
ジャンル :

プロフィール

インドリ

Author:インドリ
みなさん、はじめまして、
コンニチハ。

ボクは、無限の夢(infinity dream)を持つネタ好きな虹色の鳥インドリ(in dre)です。
色々な情報処理技術を啄ばむから楽しみにしてね。

http://twitter.com/indori
は別人による嫌がらせ行為です。
私とは関係ないので注意して下さい。
次はなりすましブログなどをするかもしれませんが、ここ以外でブログをするつもりがないので、ここ以外にインドリのブログがあったとしても無視してください。


何度言っても分からない人がいるので、ここにコメント欄へ書き込むときの注意事項を書きます。


一、社会人としてのマナーをわきまえましょう。
一、妄想に基づく書き込みを止めてください。
一、暴言の類は書かないで下さい。
一、某誹謗中傷サイトの書き込みは彼らの妄想に基づく書き込みですから無視して、ここへ書き込まないで下さい。
一、コメント書く前に他のコメントよく読んでから行って下さい。
一、言いがかかり等の行為を禁止します。
一、その他常識的に考えて迷惑なコメントはしないで下さい。


以上のルールを守れない人のコメントは削除します。



利用上の注意
ここに紹介してある文章およびプログラムコードは正確であるように心がけておりますが、内容を保証するものではありません。当サイトの内容によって生じた損害については、一切の責任を負いませんので御了承ください。


執筆したCodeZineの記事


【VB.NETで仮想CPUを作ろう】

  1. VB.NETで仮想CPUを作ろう
  2. レジスタの実装
  3. 仮想CPUのGUI化
  4. テストドライバの改良
  5. CPUの基礎動作の実装
  6. MOV命令の実装
  7. ADD命令実装
  8. SUB命令実装
  9. INC命令&DEC命令の実装と命令長
  10. MLU命令の実装とModR/Mについて
  11. DIV命令の実装とイベント設計について
  12. 機械語駆動式 関数電卓を作ろう!
  13. 機械語駆動式 関数電卓を作ろう! 解答編(前半)
  14. 機械語駆動式 関数電卓を作ろう! 解答編(後半)


【仮想ネットワーク実装でTCP/IPを学ぼう】
  1. TCP/IPの基礎と勘所
  2. ネットワークアクセス層の勘所
  3. インターネット層の勘所
  4. トランスポート層の勘所
  5. アプリケーション層の勘所
  6. セキュリティの基礎と仮想ネットワークの仕様
  7. GDI+と独自プロトコルの定義



【並列化】
インテル Parallel Studioを使って並列化プログラミングを試してみた
並列プログラミングの効率的なデバッグを実現する「Parallel Inspector」


【TBBシリーズ】
  1. インテル スレッディング・ビルディング・ブロックの概要
  2. インテルTBBから学ぶループの並列化
  3. スレッドセーフとインテルTBBのコンテナ
  4. インテルTBBのスレッドクラス


【OpenMPシリーズ】
  1. OpenMPの基礎構文
  2. OpenMPの実行時ライブラリと並列ループ
  3. OpenMPのメモリモデルとfork- joinモデル

最近の記事
最近のコメント
月別アーカイブ
カテゴリ
Ada (9)
COBOL (5)
C (9)
C++ (11)
C# (370)
D (25)
Java (8)
Perl (1)
Ruby (14)
PHP (2)
Boo (2)
Cobra (2)
LISP (6)
F# (33)
HTML (0)
XHTML (0)
CSS (0)
XML (0)
XSLT (0)
Scala (4)
WPF (0)
WF (2)
WCF (0)
LINQ (4)
MONO (5)
Linux (0)
MySQL (0)
ブログ内検索
リンク
最近のトラックバック
RSSフィード
ブロとも申請フォーム

この人とブロともになる

QRコード
FC2カウンター