オレポータビリティ 日本Rubyの会 青木 峰郎.

Slides:



Advertisements
Similar presentations
エンジニアから見る Mac OS X. Mac のイメージ お洒落、かっこいいマシン デザイナーさんが使うマシン DTP に強いマシン 実は、 Developer のためにある!・・・は ず.
Advertisements

OpenOffice.org 2.3の 紹介と今後の展開について
BBT大学 Ruby on Rails開発環境セットアップマニュアル
Firebird ユニバーサル オープンソース データベース
OpenOffice.org の独自コンパイル
プログラミング言語ADP 大藤雄久.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
難しいことは置いといて、 取り合えず 「BlazeDS」 を使って、 Flash、AIRアプリから Javaオブジェクトのメソッドを呼び出すための 手順書(Windows版) 2008年2月 Lecce.
C言語システムプログラミング クラス分け 1の人:紫合クラス(302教室) 学籍番号を3で割った余りが、 0の人:冬爪クラス(208教室)
榮樂 英樹 LilyVM と仮想化技術 榮樂 英樹
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
Unix生活 Vol.1
シェル シェルスクリプト 最低限vi 山下 達也 (北大理・宇宙理学専攻) INEX 第4回/最低限 UNIX(Linux) その3
静岡大学大学院理工学研究科 阿部 秀尚 Weka入門(セットアップ編) 静岡大学大学院理工学研究科 阿部 秀尚
NetBSD以外でpkgsrcを使うZoularis
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
Samba日本語版の設定と運用のノウハウトラブルシューティング編
Docker.
Ubuntu 7.10の紹介 Ubuntu Japanese Team あわしろいくや
Java I 第2回 (4/18)
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
UNIX Life KMSF M2 saburo.
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
Advanced Unix Commands
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
情報理工学部 情報システム工学科 ラシキアゼミ3年 H 岡田 貴大
山田 由貴子 (北大理・地球惑星科学専攻) 2004年10月29日
Java I 第2回 (9/22).
プログラミング演習I 2004年4月14日(第1回) 木村巌.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
講 義 ガ イ ダ ン ス オペレーティングシステム 第1回.
マルチプラットフォーム対応 P2Pファイル共有ソフトの開発
千代浩司 高エネルギー加速器研究機構 素粒子原子核研究所
MSBuild 色々出来るよ 2011/04/02 お だ.
情報システム構築 -グループ分けとCVSの初期設定-

「C++言語」習得のための実践的研究 -「テンプレート」,「例外処理」,「実行時型情報」-
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
Microsoft Office 2010 クイックガイド ~応用編~
2009/5/22 けーちゃん カンタン  Wikiで情報共有 あいさつ 2009/5/22 けーちゃん
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
UNIXについて 松野秀平.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
ネットワークプログラミング 中村 修.
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
Office IME 2010 を使う.
FlexとBison+アルファ -実習編-
ソフトウェア情報学総論 基盤ソフトウェア学講座
実行時情報に基づく OSカーネルのコンフィグ最小化
職務経歴書・スキルシート (職種:職種を記載してください).
パソコンのしくみ ハードウェア OS(Operating System) アプリケーション NEC DOS
Processing使用の準備.
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
TA 高田正法 B10 CPUを作る   実験の前に TA 高田正法
インターネット             サーバーの種類 チーム 俺 春.
ガイダンス 情報システム管理 ガイダンス 水野 嘉明 情報システム管理 1.
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
Global standard programming with GNU Autotools
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
ネットワーク・プログラミング Linuxシステムとソフトウェア開発.
Make の使い方.
医療科学B演習のおさらい 杏林大学医学図書館 医療科学B.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
Bash on Ubuntu on Windowsに オープンCAEのソフトを インストールする(2)
<前提条件> C/S Bridge(C/S版)
7-Zipのインストール (Windows 10)
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
就職活動.
Presentation transcript:

オレポータビリティ 日本Rubyの会 青木 峰郎

自己紹介

自己紹介 1/3 文系の大学生 専門は……哲学?

開発と言えば自宅

自己紹介 2/3 Ruby関係者 標準添付ライブラリ メンテナ 著書いろいろ

自己紹介 3/3 著書 『ふつうのHaskellプログラミング』 『ふつうのLinuxプログラミング』 『Javaを独習する前に読む本』 『Rubyソースコード完全解説』 『Rubyレシピブック』 『Rubyを256倍使うための本 無道編』

言語は ほぼ確実に RubyかC

./lib/bitchannel/syntax.rb:398: [BUG] Segmentation fault ruby 1.9.0 (2005-10-22) [x86_64-linux]

「開発環境」 って何?

部屋

ハードウェア

ソフトウェア

部屋の様子

自室

自室(本棚)

自室(デスクトップ)

自室(キーボード)

ハードウェア

部屋の様子(マシン)

5つのアーキテクチャ x86 AMD64 Alpha SPARC POWER

7つのOS Linux FreeBSD NetBSD Tru64UNIX Solaris AIX Windows

9つのプラットフォーム Linux/x86 Linux/Alpha Linux/AMD64 FreeBSD/Alpha NetBSD/Alpha Tru64UNIX/Alpha Solaris/SPARC AIX/POWER Windows/x86

「こんなに たくさんあって どうすんの?」

愛でるため

紺筐体 萌え~

ついでに Ruby のテストも している

テーマ解説

前提: マシン台数も プラットフォームも 多すぎる

オレポータビリティ

俺(の)portability

どんな環境でも 同じように開発できる → オレポータビリティ   が高い!

オレポータビリティを 高める戦略

戦略(1) 必須ソフトウェアを 限界まで削る

どこでも使える ソフトウェアが そもそも少ない

たくさんソフトウェアを使うとインストールがめんどくさい!

必ず使うソフトウェア Ruby Cコンパイラなど zsh vi バージョン管理システム 独自の開発ツール

使うもの(1) Ruby 開発版 + 安定版ぜんぶ

システムに存在する 全バージョンの ruby に 同じオプションを与えて実行 forall-ruby コマンド システムに存在する 全バージョンの ruby に 同じオプションを与えて実行

gcc, bison, flex, autoconf, make, …

使うもの(3) zsh

使うもの(4) vi

複数ファイルを 編集するときは ジョブ制御でがんばる Ctrl-Z でサスペンド fg コマンドで復帰

使うもの(5) バージョン管理システム CVSかSubversion

使うもの(6) 独自の開発ツール ReFe rdefs

Rubyのリファレンスマニュアルを 検索するツール ReFe Rubyのリファレンスマニュアルを 検索するツール

ファイルに定義されている クラスやメソッドを 抜き出して表示する rdefs コマンド ファイルに定義されている クラスやメソッドを 抜き出して表示する

独自ツールのポイント Ruby だけで書く インストーラを付ける

戦略(2) カスタマイズしない

いちいち カスタマイズ してられるか!

カスタマイズしなくても 使う気になる ソフトウェアだけ使う!

No configuration is Good configuration.

ノウハウを 作らないことが ノウハウ

戦略(3) ホームディレクトリの 構造は全マシンで 共通化する

各種設定を 減らすためにも 共通化が重要

Convention over configuration.

慣習じゅーよー

bin, etc, lib, share, src, var UNIXの/usrを真似る bin, etc, lib, share, src, var

自分で 作ったものは ~/c に置く

戦略(4) 徹底的に バージョン管理

共有するため

~/c 以下は 例外なく バージョン管理システム で管理する

ソースコード

開発ツール

大学のレポート

戦略のまとめ

戦略(1) 必須ソフトウェアを 限界まで削る

戦略(2) カスタマイズしない

戦略(3) ホームディレクトリの 構造は全マシンで 共通化する

戦略(4) 徹底的に バージョン管理

結論: あたりまえのことを 徹底的にやるのが ポイント

ご静聴 ありがとうございました