SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
プログラマの三大美徳について



                       西本卓也

         京都工芸繊維大学 工芸学部 電子情報工学科 助手
            http://www-vox.dj.kit.ac.jp/nishi/
                  nishi@vox.dj.kit.ac.jp


2000-12-01              京都研究会                    1
オープンソースとアクセシビリティ

• プログラマの三大美徳について考える
  – 無精
  – 短気
  – 傲慢

• 出典: Programming Perl 改訂版




2000-12-01         京都研究会        2
美徳1 「無精」

• 手抜きをせずに楽をするためには?
  – 仕事の質は落とさないで、時間や労力を短縮する
• 問題を解くのではなく、問題を解くための道具を作る
  – プログラムを書きたくなる動機
• 問題そのものを解くのではなく、
  より一般化された問題を解く
• 解法=ソリューションを再利用する

• 誰かのソリューションを再利用する=オープンソース

2000-12-01     京都研究会         3
頭を使って時間と労力を節約する

• 6時間かかる単純作業があったとする
• Aさん:6時間かけてやる
   – 頭を使うことを怠ると、時間がかかる
• Bさん:1時間かけてプログラムを書く→5分で実行する
   – 頭を使うことにより、時間を節約する
• もちろん逆もあるので見極めが大切!!
   – ようするにこれがセンス?? 知識と経験ですね
• そのプロセスを、知的快楽にしなくてはダメ!!
  プロダクトの時代からプロセスの時代へ

2000-12-01         京都研究会       4
技術者の「ブラックジャック」モデル

• 手塚治虫「ブラックジャック」の行動パターン
  – 技術的にチャレンジングであれば、タダでも手術する
  – つまらない外科手術には法外な値段をふっかける
  – 類似例:「750ライダー」
• 知的快楽のない仕事を減らす生き方
• そもそも仕事とは楽しいものなのか?
• 利益にならなくてもやりたい仕事があるのか?
  – 条件によっては Yes!!
  – ではその条件は?

2000-12-01      京都研究会          5
「楽しさ」の認知的モデル

• チクセントミハイのフロー理論
• 「フロー体験 喜びの現象学」
  M.チクセントミハイ (今村浩明 訳) 世界思想社 1996
• カイヨワの遊びの理論を発展させ、
  独自の方法によって「楽しさ」を定義した
• 楽しさ=自己目的的な行為
• 流れているような感じ=フロー体験
• 心理的エントロピーを減らす→最適体験


2000-12-01       京都研究会             6
フロー体験モデル

• 挑戦と技能が均衡した状態 → 楽しさ
     – 技能が低いと不安
     – 技能が高いと退屈          high
     – 能力を必要とする
       挑戦的活動が必要
•   フローをもたらす体験               挑   不安    フロー
     – チェス,山登り,ダンス           戦
     – 仕事:外科手術
     – ネットサーフィン
                                 無感動    退屈
     – BBS・チャット参加
     – 音声認識
                                   技能        high

2000-12-01           京都研究会                     7
フロー体験の構成要素

•   課題を達成できる見通し
•   行為への意識の集中
•   明確な目標
•   直接的なフィードバックの感覚
•   深い没入状態
•   自分の行為を統制しているという感覚
•   自己と対象の融合(自己意識の消失)
•   時間経過の感覚の変化


2000-12-01      京都研究会     8
成功するオープンソースとは

• 課題を達成できる見通しがあること
• 明確な目標、直接的なフィードバックが得られること
  – 役に立たない未完成のソースコード →×
  – 複雑すぎていじれないソースコード →×
  – もしも Mozilla が Netscape 4.x からスタートしてたら…
• 美しい製品ビジョンと、理解しやすいソースコードは、
  プログラマを感動させる
• オープンソースシステム=芸術作品である
  – 作品それ自身が指揮棒、プログラマは演奏者

2000-12-01        京都研究会                  9
プログラマにおける「無精」とは

• 仕事をしたくないのではない
• くだらない仕事をしたくない
• 憎むべきものは
   – 不毛な事務処理・トラブル・もめごと
   – 自分のやった仕事が無駄になること
   – 門外漢に余計な口出しをされて邪魔されること
• 正しく分析し、正しく問題を解決することで、無精を貫く
• 理性的であればあるほどハッピーになれる
• 金をケチればケチるほどクリエイティブになれる

2000-12-01         京都研究会       10
無精さが育てたUNIX文化

• テキストファイルは万能である
   – あらゆる情報が、すべて、使い慣れた1種類の
     スクリーンエディタによって編集/閲覧できる
• テキストファイルを加工する豊富なフィルター
   – 過去に作られた「一般性のある解法」
• 「車輪を再発明しない」
• グルー(糊)になるソフトウェアの存在 (Perlなど)
• 唯一の欠点:データ構造が階層化すると破綻する
  → 階層構造を持つテキストファイル= XML

2000-12-01        京都研究会         11
2000-12-01   京都研究会   12
テキストファイルの差分

             古いファイル         新しいファイル

                      差分(diff)

      古いファイル       差分ファイル

             マージ(patch)

             新しいファイル

2000-12-01        京都研究会               13
CVS=並行バージョンシステム

      1.1          1.1
                             1.1
 1.1+変更B                   1.1+変更A
                   1.2
                             1.2
 1.2+変更B


                   1.3
      1.3                    1.3
作業ファイル         リポジトリ=貯蔵庫   作業ファイル
2000-12-01         京都研究会             14
インターネット、無精でいいのに。

• データ:二度と作り直したくない。使いまわしたい。
  – テキスト情報・電子情報:いくらでも再利用できる
  – Shockwave とか凝った画像とか、いらん。でしょ?
• プログラム:二度と書き直したくない
  – Java なら「一度書けばどこでも動く」?
    ウソ。Java VM が変わればデバッグはやり直し。
  – サーバでロジックを書いて、ブラウザはHTMLだけ。
    デバッグも1回ですむ → EJB / JSP


2000-12-01         京都研究会           15
美徳2 「短気」

• 大切だと感じたものはすぐに手に入れるか経験しないと、
   一晩か二晩で平凡なものに変質してしまう。
     – 村上龍「ラブ&ポップ」

• プログラマは短気でなくてはいけない
  – いますぐ作りはじめること。でなきゃいつやるの?
  – 誰かにやらせないこと。自分以外に誰がやるの?
  – 勤務時間だけ仕事するのはアホである
  – 休日に休むより仕事をやっつける方が安心する
  – プログラマは金を使う暇がないのが当たり前

2000-12-01       京都研究会        16
「短気」を支える開発環境

• ターンアラウンドタイムが短いこと
• 記述が簡潔であること
   – Perl, Ruby, Java, Delphi, …
• 開発環境を買わなくても、すぐ手に入ること
   – フリーの開発環境はたくさんある。しかも高機能
   – 使い方やノウハウもインターネットで見つかる
• あなたがプログラマになれないのは、
  「XXXXを買っていないから」「XXXXを読んでないから」
  ではなく、やる気がないからです。(語学と同じ)

2000-12-01       京都研究会             17
オープンソースとは?フリーソフトとは?

• 作者に修正を依頼するのが待てない
  – さっさと自分で直したい
  – ソースファイル公開や配布の許諾を得るのが面倒
  – お金を払う手続きが面倒
• プログラマの「短気」を本当に満たすためには?
  → GNU Public Licence こそが偉大なソフトウェア
• フリーソフトの本質は「自由なソフト」
• 自分一人で使えない/直せない奴は金を払え
• 技術のある人間がとことん安く速く活動できる世界

2000-12-01      京都研究会
                        アクセシビリティ 18
美徳3 「傲慢」

• とりあえず公開しよう = オープンマインド
• 大切な情報を保管する最良の方法は、
  あまねく広く配布することである
   – 不完全だからといって隠さないこと
   – かっこいい名前をつけること
• 自分が作ったもの、自分がほれ込んだものを売り込む
   – ウェブでは、無精で短気な人も、傲慢になれる
• 「完璧にしよう」と思うな 自分で100%解いてはいけない
• ただし、バグフィックスにおいては「短気」であるべし!!

2000-12-01     京都研究会         19
何のために働くか?

• 食うためではなく、
  地位と名誉と快楽のために仕事をすること

• 「労働」 それをしなければいけないからやること。
  「仕事」 それをしたいと思ってすること。

• と思っている人が食えるようなビジネスモデルに期待




2000-12-01      京都研究会        20

Weitere ähnliche Inhalte

Was ist angesagt?

Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミングYusuke Sakurai
 
バージョン管理ツールの話
バージョン管理ツールの話バージョン管理ツールの話
バージョン管理ツールの話Shota Homma
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testingTakuto Wada
 
How to use scikit-image for data augmentation
How to use scikit-image for data augmentationHow to use scikit-image for data augmentation
How to use scikit-image for data augmentationHiroki Yamamoto
 
リファクタリング勉強会 第2回
リファクタリング勉強会 第2回リファクタリング勉強会 第2回
リファクタリング勉強会 第2回ikikko
 
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみるMasayuki Sakamoto
 

Was ist angesagt? (10)

Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミング
 
バージョン管理ツールの話
バージョン管理ツールの話バージョン管理ツールの話
バージョン管理ツールの話
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
qpsutdy 201307 LT
qpsutdy 201307 LTqpsutdy 201307 LT
qpsutdy 201307 LT
 
Python勉強会 2015-12-02
Python勉強会 2015-12-02Python勉強会 2015-12-02
Python勉強会 2015-12-02
 
10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing10+1 Things you should know about JavaScript testing
10+1 Things you should know about JavaScript testing
 
How to use scikit-image for data augmentation
How to use scikit-image for data augmentationHow to use scikit-image for data augmentation
How to use scikit-image for data augmentation
 
リファクタリング勉強会 第2回
リファクタリング勉強会 第2回リファクタリング勉強会 第2回
リファクタリング勉強会 第2回
 
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる入門系の本を一冊も読まずにデータサイエンスに入門してみる
入門系の本を一冊も読まずにデータサイエンスに入門してみる
 

Andere mochten auch

怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
怠惰な私がプログラミングするときに重要だと考えているたった1つのことTohru Kobayashi
 
Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作Osamu Monoe
 
いまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみた
いまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみたいまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみた
いまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみたHiroshi Kawada
 
本当はこわいエンコーディングの話
本当はこわいエンコーディングの話本当はこわいエンコーディングの話
本当はこわいエンコーディングの話Masahiro Tomita
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」Muyuu Fujita
 
Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告
Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告
Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告Hiroshi Kawada
 
Windows 10 の あたらしい Web ブラウザー について
Windows 10 の あたらしい Web ブラウザー についてWindows 10 の あたらしい Web ブラウザー について
Windows 10 の あたらしい Web ブラウザー についてOsamu Monoe
 
Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門Muneaki Nishimura
 
Webライティング11のルール
Webライティング11のルールWebライティング11のルール
Webライティング11のルールTsutomu Sogitani
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門樽八 仲川
 
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンスLivesense Inc.
 

Andere mochten auch (11)

怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
怠惰な私がプログラミングするときに重要だと考えているたった1つのこと
 
Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作Edge と IE、来年からの Web 制作
Edge と IE、来年からの Web 制作
 
いまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみた
いまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみたいまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみた
いまさらだけど、マイクロソフトのウワサのブラウザ「Edge」についてまとめてみた
 
本当はこわいエンコーディングの話
本当はこわいエンコーディングの話本当はこわいエンコーディングの話
本当はこわいエンコーディングの話
 
非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」非ガチ勢「よし、Coffee script使おう!」
非ガチ勢「よし、Coffee script使おう!」
 
Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告
Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告
Internet ExplorerはIE特化アプリから一時的に日本を救ってくれたけど次回はもう助けてくれないよという警告
 
Windows 10 の あたらしい Web ブラウザー について
Windows 10 の あたらしい Web ブラウザー についてWindows 10 の あたらしい Web ブラウザー について
Windows 10 の あたらしい Web ブラウザー について
 
Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門Webアプリ開発者のためのHTML5セキュリティ入門
Webアプリ開発者のためのHTML5セキュリティ入門
 
Webライティング11のルール
Webライティング11のルールWebライティング11のルール
Webライティング11のルール
 
Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門Webアプリケーション負荷試験実践入門
Webアプリケーション負荷試験実践入門
 
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
学生時代に知っておきたかったWeb技術の学び方の学び方 | リブセンス
 

Ähnlich wie opensource and accessibility (Dec2000) Part 2

Xp Terakoya No02
Xp Terakoya No02Xp Terakoya No02
Xp Terakoya No02takepu
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-nishio
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)nishikawa_makoto7
 
opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1Takuya Nishimoto
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方Yusuke Wada
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」nishikawa_makoto7
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験についてRakuten Group, Inc.
 
自ら肥え太る執事を現場に入れてみた
自ら肥え太る執事を現場に入れてみた自ら肥え太る執事を現場に入れてみた
自ら肥え太る執事を現場に入れてみたKazuhito Miura
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02Hiro Yoshioka
 
サービス開発者の読書会#4
サービス開発者の読書会#4サービス開発者の読書会#4
サービス開発者の読書会#4Sosuke Kimura
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはKatsutoshi Makino
 
アジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップ
アジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップアジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップ
アジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップYou&I
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_opsume3_
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」Shuji Morisaki
 
Xpfp 070626
Xpfp 070626Xpfp 070626
Xpfp 070626takepu
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方信之 岩永
 
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解くShin Takeuchi
 

Ähnlich wie opensource and accessibility (Dec2000) Part 2 (20)

Xp Terakoya No02
Xp Terakoya No02Xp Terakoya No02
Xp Terakoya No02
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
 
PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)PFPファシグラ(2009/07/03)
PFPファシグラ(2009/07/03)
 
opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1opensource and accessibility (Dec2000) Part 1
opensource and accessibility (Dec2000) Part 1
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」議論を描く技術「ファシリテーショングラフィック」
議論を描く技術「ファシリテーショングラフィック」
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
自ら肥え太る執事を現場に入れてみた
自ら肥え太る執事を現場に入れてみた自ら肥え太る執事を現場に入れてみた
自ら肥え太る執事を現場に入れてみた
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
サービス開発者の読書会#4
サービス開発者の読書会#4サービス開発者の読書会#4
サービス開発者の読書会#4
 
20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回20120515 アジャイルサムライ読書会 第4回
20120515 アジャイルサムライ読書会 第4回
 
プログラマが欲しい仕様書とは
プログラマが欲しい仕様書とはプログラマが欲しい仕様書とは
プログラマが欲しい仕様書とは
 
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pubScrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
 
アジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップ
アジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップアジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップ
アジャイルにプロジェクトの"なぜ"を考える、インセプションデッキワークショップ
 
20120927 findjob4 dev_ops
20120927 findjob4 dev_ops20120927 findjob4 dev_ops
20120927 findjob4 dev_ops
 
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
XP祭り関西2011 森崎 修司「プラクティスが有効にはたらく前提は明らかになっていますか?」
 
Database smells
Database smellsDatabase smells
Database smells
 
Xpfp 070626
Xpfp 070626Xpfp 070626
Xpfp 070626
 
C#言語機能の作り方
C#言語機能の作り方C#言語機能の作り方
C#言語機能の作り方
 
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
 

Mehr von Takuya Nishimoto

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ているTakuya Nishimoto
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集Takuya Nishimoto
 
220126 python-datalake-spark
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-sparkTakuya Nishimoto
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解するTakuya Nishimoto
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10Takuya Nishimoto
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれからTakuya Nishimoto
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPythonTakuya Nishimoto
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop PythonTakuya Nishimoto
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimotoTakuya Nishimoto
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimotoTakuya Nishimoto
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjpTakuya Nishimoto
 

Mehr von Takuya Nishimoto (20)

221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている221217 SwiftはPythonに似ている
221217 SwiftはPythonに似ている
 
220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集220427-pydata 統計・データ分析 特集
220427-pydata 統計・データ分析 特集
 
220126 python-datalake-spark
220126 python-datalake-spark220126 python-datalake-spark
220126 python-datalake-spark
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10211020 すごい広島 with OSH 2021.10
211020 すごい広島 with OSH 2021.10
 
210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから210917 オープンセミナー@広島のこれまでとこれから
210917 オープンセミナー@広島のこれまでとこれから
 
210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython210911 これから始める電子工作とMicroPython
210911 これから始める電子工作とMicroPython
 
210728 mpy
210728 mpy210728 mpy
210728 mpy
 
210630 python
210630 python210630 python
210630 python
 
210526 Power Automate Desktop Python
210526 Power Automate Desktop Python210526 Power Automate Desktop Python
210526 Power Automate Desktop Python
 
210428 python
210428 python210428 python
210428 python
 
200918 hannari-python
200918 hannari-python200918 hannari-python
200918 hannari-python
 
200429 python
200429 python200429 python
200429 python
 
200325 flask
200325 flask200325 flask
200325 flask
 
200208 osh-nishimoto-v2
200208 osh-nishimoto-v2200208 osh-nishimoto-v2
200208 osh-nishimoto-v2
 
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
 
191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto191101 nvda-sightworld-nishimoto
191101 nvda-sightworld-nishimoto
 
191114 iotlt-nishimoto
191114 iotlt-nishimoto191114 iotlt-nishimoto
191114 iotlt-nishimoto
 
191030 anna-with-python
191030 anna-with-python191030 anna-with-python
191030 anna-with-python
 
190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp190916 nishimoto-nvda-pyconjp
190916 nishimoto-nvda-pyconjp
 

Kürzlich hochgeladen

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Kürzlich hochgeladen (10)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

opensource and accessibility (Dec2000) Part 2

  • 1. プログラマの三大美徳について 西本卓也 京都工芸繊維大学 工芸学部 電子情報工学科 助手 http://www-vox.dj.kit.ac.jp/nishi/ nishi@vox.dj.kit.ac.jp 2000-12-01 京都研究会 1
  • 2. オープンソースとアクセシビリティ • プログラマの三大美徳について考える – 無精 – 短気 – 傲慢 • 出典: Programming Perl 改訂版 2000-12-01 京都研究会 2
  • 3. 美徳1 「無精」 • 手抜きをせずに楽をするためには? – 仕事の質は落とさないで、時間や労力を短縮する • 問題を解くのではなく、問題を解くための道具を作る – プログラムを書きたくなる動機 • 問題そのものを解くのではなく、 より一般化された問題を解く • 解法=ソリューションを再利用する • 誰かのソリューションを再利用する=オープンソース 2000-12-01 京都研究会 3
  • 4. 頭を使って時間と労力を節約する • 6時間かかる単純作業があったとする • Aさん:6時間かけてやる – 頭を使うことを怠ると、時間がかかる • Bさん:1時間かけてプログラムを書く→5分で実行する – 頭を使うことにより、時間を節約する • もちろん逆もあるので見極めが大切!! – ようするにこれがセンス?? 知識と経験ですね • そのプロセスを、知的快楽にしなくてはダメ!! プロダクトの時代からプロセスの時代へ 2000-12-01 京都研究会 4
  • 5. 技術者の「ブラックジャック」モデル • 手塚治虫「ブラックジャック」の行動パターン – 技術的にチャレンジングであれば、タダでも手術する – つまらない外科手術には法外な値段をふっかける – 類似例:「750ライダー」 • 知的快楽のない仕事を減らす生き方 • そもそも仕事とは楽しいものなのか? • 利益にならなくてもやりたい仕事があるのか? – 条件によっては Yes!! – ではその条件は? 2000-12-01 京都研究会 5
  • 6. 「楽しさ」の認知的モデル • チクセントミハイのフロー理論 • 「フロー体験 喜びの現象学」 M.チクセントミハイ (今村浩明 訳) 世界思想社 1996 • カイヨワの遊びの理論を発展させ、 独自の方法によって「楽しさ」を定義した • 楽しさ=自己目的的な行為 • 流れているような感じ=フロー体験 • 心理的エントロピーを減らす→最適体験 2000-12-01 京都研究会 6
  • 7. フロー体験モデル • 挑戦と技能が均衡した状態 → 楽しさ – 技能が低いと不安 – 技能が高いと退屈 high – 能力を必要とする 挑戦的活動が必要 • フローをもたらす体験 挑 不安 フロー – チェス,山登り,ダンス 戦 – 仕事:外科手術 – ネットサーフィン 無感動 退屈 – BBS・チャット参加 – 音声認識 技能 high 2000-12-01 京都研究会 7
  • 8. フロー体験の構成要素 • 課題を達成できる見通し • 行為への意識の集中 • 明確な目標 • 直接的なフィードバックの感覚 • 深い没入状態 • 自分の行為を統制しているという感覚 • 自己と対象の融合(自己意識の消失) • 時間経過の感覚の変化 2000-12-01 京都研究会 8
  • 9. 成功するオープンソースとは • 課題を達成できる見通しがあること • 明確な目標、直接的なフィードバックが得られること – 役に立たない未完成のソースコード →× – 複雑すぎていじれないソースコード →× – もしも Mozilla が Netscape 4.x からスタートしてたら… • 美しい製品ビジョンと、理解しやすいソースコードは、 プログラマを感動させる • オープンソースシステム=芸術作品である – 作品それ自身が指揮棒、プログラマは演奏者 2000-12-01 京都研究会 9
  • 10. プログラマにおける「無精」とは • 仕事をしたくないのではない • くだらない仕事をしたくない • 憎むべきものは – 不毛な事務処理・トラブル・もめごと – 自分のやった仕事が無駄になること – 門外漢に余計な口出しをされて邪魔されること • 正しく分析し、正しく問題を解決することで、無精を貫く • 理性的であればあるほどハッピーになれる • 金をケチればケチるほどクリエイティブになれる 2000-12-01 京都研究会 10
  • 11. 無精さが育てたUNIX文化 • テキストファイルは万能である – あらゆる情報が、すべて、使い慣れた1種類の スクリーンエディタによって編集/閲覧できる • テキストファイルを加工する豊富なフィルター – 過去に作られた「一般性のある解法」 • 「車輪を再発明しない」 • グルー(糊)になるソフトウェアの存在 (Perlなど) • 唯一の欠点:データ構造が階層化すると破綻する → 階層構造を持つテキストファイル= XML 2000-12-01 京都研究会 11
  • 12. 2000-12-01 京都研究会 12
  • 13. テキストファイルの差分 古いファイル 新しいファイル 差分(diff) 古いファイル 差分ファイル マージ(patch) 新しいファイル 2000-12-01 京都研究会 13
  • 14. CVS=並行バージョンシステム 1.1 1.1 1.1 1.1+変更B 1.1+変更A 1.2 1.2 1.2+変更B 1.3 1.3 1.3 作業ファイル リポジトリ=貯蔵庫 作業ファイル 2000-12-01 京都研究会 14
  • 15. インターネット、無精でいいのに。 • データ:二度と作り直したくない。使いまわしたい。 – テキスト情報・電子情報:いくらでも再利用できる – Shockwave とか凝った画像とか、いらん。でしょ? • プログラム:二度と書き直したくない – Java なら「一度書けばどこでも動く」? ウソ。Java VM が変わればデバッグはやり直し。 – サーバでロジックを書いて、ブラウザはHTMLだけ。 デバッグも1回ですむ → EJB / JSP 2000-12-01 京都研究会 15
  • 16. 美徳2 「短気」 • 大切だと感じたものはすぐに手に入れるか経験しないと、 一晩か二晩で平凡なものに変質してしまう。 – 村上龍「ラブ&ポップ」 • プログラマは短気でなくてはいけない – いますぐ作りはじめること。でなきゃいつやるの? – 誰かにやらせないこと。自分以外に誰がやるの? – 勤務時間だけ仕事するのはアホである – 休日に休むより仕事をやっつける方が安心する – プログラマは金を使う暇がないのが当たり前 2000-12-01 京都研究会 16
  • 17. 「短気」を支える開発環境 • ターンアラウンドタイムが短いこと • 記述が簡潔であること – Perl, Ruby, Java, Delphi, … • 開発環境を買わなくても、すぐ手に入ること – フリーの開発環境はたくさんある。しかも高機能 – 使い方やノウハウもインターネットで見つかる • あなたがプログラマになれないのは、 「XXXXを買っていないから」「XXXXを読んでないから」 ではなく、やる気がないからです。(語学と同じ) 2000-12-01 京都研究会 17
  • 18. オープンソースとは?フリーソフトとは? • 作者に修正を依頼するのが待てない – さっさと自分で直したい – ソースファイル公開や配布の許諾を得るのが面倒 – お金を払う手続きが面倒 • プログラマの「短気」を本当に満たすためには? → GNU Public Licence こそが偉大なソフトウェア • フリーソフトの本質は「自由なソフト」 • 自分一人で使えない/直せない奴は金を払え • 技術のある人間がとことん安く速く活動できる世界 2000-12-01 京都研究会 アクセシビリティ 18
  • 19. 美徳3 「傲慢」 • とりあえず公開しよう = オープンマインド • 大切な情報を保管する最良の方法は、 あまねく広く配布することである – 不完全だからといって隠さないこと – かっこいい名前をつけること • 自分が作ったもの、自分がほれ込んだものを売り込む – ウェブでは、無精で短気な人も、傲慢になれる • 「完璧にしよう」と思うな 自分で100%解いてはいけない • ただし、バグフィックスにおいては「短気」であるべし!! 2000-12-01 京都研究会 19
  • 20. 何のために働くか? • 食うためではなく、 地位と名誉と快楽のために仕事をすること • 「労働」 それをしなければいけないからやること。 「仕事」 それをしたいと思ってすること。 • と思っている人が食えるようなビジネスモデルに期待 2000-12-01 京都研究会 20