• 検索結果がありません。

(GitHub, Twitter) 由来 :m.yokoyama 発音例 :myokoyamaa ソフトウェア開発者将棋指し ( アマ三段 )

N/A
N/A
Protected

Academic year: 2021

シェア "(GitHub, Twitter) 由来 :m.yokoyama 発音例 :myokoyamaa ソフトウェア開発者将棋指し ( アマ三段 )"

Copied!
60
0
0

読み込み中.... (全文を見る)

全文

(1)

高架下のRuby

横山昌史

札幌市中央区Ruby会議01

2014/02/08

(2)

高架下のRuby Powered by Rabbit 2.1.2

自己紹介

@myokoym (GitHub, Twitter)

由来:

m

.

yokoy

a

m

a

発音例:myokoyamaa

ソフトウェア開発者

将棋指し(アマ三段)

(3)
(4)

高架下のRuby Powered by Rabbit 2.1.2

札幌の将棋事情

北海道将棋会館

札幌市中央区

南4西9

北海道将棋連盟のブログ

http://doshoren.blog.fc2.com/

札幌将棋情報のブログ

http://blogs.yahoo.co.jp/sapporoshogijoho

(5)

よろしくお願いします。

m(_ _)m

(6)

高架下のRuby Powered by Rabbit 2.1.2

(7)
(8)

高架下のRuby Powered by Rabbit 2.1.2

(9)

高架橋

とは

(10)

高架下のRuby Powered by Rabbit 2.1.2

私(達)

Railsを使っていない

(11)

たまに見かける仮説

(12)

高架下のRuby Powered by Rabbit 2.1.2

私(達)

Railsを使っていない

Rubyは使っている

(13)
(14)

高架下のRuby Powered by Rabbit 2.1.2

お伝えしたいこと

Railsを使う機会がなくても、

Rubyを活用できるということ

(15)

話すこと

コマンドラインツール

(16)

高架下のRuby Powered by Rabbit 2.1.2

話すこと

コマンドラインツール

(17)
(18)

高架下のRuby Powered by Rabbit 2.1.2

コマンドラインツール

bashやコマンドプロンプト

などで動くプログラム

(19)

コマンドラインの利点

UIを作成しなくていい

気軽に書ける

Rubyだけで書ける

一括処理や自動化しやすい

シェルスクリプトの代替

(20)

高架下のRuby Powered by Rabbit 2.1.2

シェルスクリプトの代替

違うOSで同じコードが動く

Rubyが動けばOK

(21)

実行方法

irb

ワンライナー

(22)

高架下のRuby Powered by Rabbit 2.1.2

irb

1行ずつ実行

チュートリアル向き

$ irb

irb(main):001:0> puts "Hello, World!"

Hello, World!

(23)

ワンライナー

コマンドラインに直接コードを書

いて実行

(24)

高架下のRuby Powered by Rabbit 2.1.2

ワンライナー

$ ruby -e ...

$ ruby -e 'puts "Hello, World!"'

Hello, World!

(25)

ワンライナー

Perlに似たオプションが使える

$ echo こんにちは | ruby -ple 'gsub(/[な-の]/, "ぬ")'

こんぬちは

(26)

高架下のRuby Powered by Rabbit 2.1.2

ファイルに保存して実行

1行目はshebang

#!/usr/bin/env ruby

puts

"

Hello, World!

"

(27)

shebang

Unixのスクリプトの一行目の

#!

インタプリタのパスを指定

envの場合、環境変数PATHを探す

(28)

高架下のRuby Powered by Rabbit 2.1.2

ファイルに保存して実行

shebang+実行権限

$ ./hello.rb

shebangなし

$ ruby hello.rb

(29)

マジックコメント

shebangがあるときは2行目に書く

Ruby2.0以降はUTF-8なら省略可

#!/usr/bin/env ruby

# coding: utf-8

puts

"

こんにちは!

"

(30)

高架下のRuby Powered by Rabbit 2.1.2

実用例

ファイル名を一括変更

ファイルごとに圧縮

(31)

ファイル名を一括変更

require

"

fileutils

"

Dir.glob(

"

*

"

)

do

|name|

next

unless

/

\A

sl.*

\.

txt

\z

/

=~

name

FileUtils.mv(name,

name.sub(

/

\A

sl

/

,

"

ls

"

))

(32)

高架下のRuby Powered by Rabbit 2.1.2

ファイルごとに圧縮

外部コマンドを使う場合

7-Zipなどはコマンドラインで使える

Dir.

glob

("

*.log

")

do

|

name

|

system

("

7z

",

"

a

",

"

#{name}.zip

",

name

)

(33)

生Ruby

(34)

高架下のRuby Powered by Rabbit 2.1.2

話すこと

コマンドラインツール

(35)

デスクトップアプリとは

デスクトップ環境で動作するアプ

リケーション

PCにインストールして使うもの

GUIツールキットを使って作る

GUIアプリケーションとも呼ばれる

(36)

高架下のRuby Powered by Rabbit 2.1.2

GUIツールキット

GUIアプリケーションを構成する

部品の集まり

一からウィンドウを作成

自由度が高い

JavaScriptを書かなくていい

(37)

GUIツールキットの例

マルチプラットフォーム(C/C++)

GTK+, Qt, Tk

Mac OS X

Cocoa

Windows

.NET Framework

(38)

高架下のRuby Powered by Rabbit 2.1.2

Ruby × GUI

Ruby標準添付

Ruby/Tk

GNOME開発環境(GTK+ 等)

Ruby-GNOME2(Ruby/GTK)

etc...

(39)

GNOMEとは

TM

デスクトップ環境

Debian GNU/Linux

Fedora

CentOS, RHEL

(Ubuntu)

(40)

高架下のRuby Powered by Rabbit 2.1.2

デスクトップ環境

Linux

GNOME, KDE, Xfce, Unityなど

Mac OS X

Aqua

Windows Vista, 7, 8

(41)

Ruby-GNOME2とは

Ruby-GNOME2はGNOME

で使用されるGTK+などの主要

なライブラリのRubyバインディン

グ集です。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/

ruby-list/49734

(42)

高架下のRuby Powered by Rabbit 2.1.2

Ruby-GNOME2とは

GTK+はマルチプラットフォー

ム対 応のG U Iツ ー ル キ ッ トな の

で、マルチプラットフォーム対応

のGUIアプリケーションをRubyで

書くことができます。

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/

ruby-list/49734

(43)

なぜRuby-GNOME2か

(44)

高架下のRuby Powered by Rabbit 2.1.2

なぜ楽しいのか

Rubyらしく書ける

拡張ライブラリがたくさん

GitHubでオープンソース

日本人開発者が多い

(45)

Rubyらしく書ける

R u b y言 語の持つ様 々な特 徴

(例外処理やブロックの使用)をう

ま く取り入れ る こ と でR u b yと の

親和性が極めて高い.

http://ruby-gnome2.sourceforge.jp/ja/hiki.cgi?gtk2-tut-introduction

(46)

高架下のRuby Powered by Rabbit 2.1.2

拡張ライブラリがたくさん

Ruby/Poppler

PDF読み込み、書き出し

Ruby/GStreamer

音声、動画の再生、編集

Ruby/WebKitGTK

Webブラウザウィジェット

(47)

GitHubでオープンソース

https://github.com/

(48)

高架下のRuby Powered by Rabbit 2.1.2

日本人開発者が多い

日本語メーリングリスト

ruby-list

ruby-gnome2-devel-ja

日本語で質問できる

煮詰まったら気軽に投稿

(49)
(50)

高架下のRuby Powered by Rabbit 2.1.2

バージョンについて

Ruby/GTK2

Ruby/GTK3

(51)

Ruby/GTK2

GTK+ 2のRubyバインディング

旧バージョン

GTK+ 2の開発はほぼ終了

採用実績が多く、安定性は高い

Rabbit(プレゼンツール)

mikutter(Twitterクライアント)

(52)

高架下のRuby Powered by Rabbit 2.1.2

Ruby/GTK3

GTK+ 3のRubyバインディング

最新バージョン

機能向上(CSS対応の強化など)

移行が推奨されている

採用実績

Mireru(ファイルビューア)

(53)

Hello, GUI!

require

"

gtk3

"

window

=

Gtk

::

Window

.

new

window

.

title

=

"

Hello, GUI!

"

window

.

signal_connect

(

"

destroy

"

)

do

Gtk

.

main_quit

end

window

.

show_all

Gtk

.

main

(54)

高架下のRuby Powered by Rabbit 2.1.2

準備

gtk2またはgtk3をインストールする

gem install gtk3

連絡先:

https://github.com/ruby-gnome2/ruby-gnome2/issues

https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-ja

(55)

準備

gtk2またはgtk3をrequireする

require

"

gtk3

"

(56)

高架下のRuby Powered by Rabbit 2.1.2

メインウィンドウ作成

×ボタンなどが付いた普通のウィン

ドウが生成される

window

=

Gtk

::

Window

.

new

(57)

イベント取得

既定のイベントが発生すると、ブロッ

ク内の処理が実行される

window

.

signal_connect

(

"

destroy

"

)

do

Gtk

.

main_quit

(58)

高架下のRuby Powered by Rabbit 2.1.2

メインループ

showやshow_allで表示フラグON

Gtk.mainでメインループに突入

window

.

show_all

Gtk

.

main

(59)
(60)

高架下のRuby Powered by Rabbit 2.1.2

おわりに

Rubyは汎用プログラミング言語で

す。Webに限らず、いろいろな場所で

活用してみてください。

デスクトップアプリケーションの勉強会を検討中なので、興味がある

方はお知らせくださいませ :-)

参照

関連したドキュメント

  「教育とは,発達しつつある個人のなかに  主観的な文化を展開させようとする文化活動

暑熱環境を的確に評価することは、発熱のある屋内の作業環境はいう

主として、自己の居住の用に供する住宅の建築の用に供する目的で行う開発行為以外の開

READ UNCOMMITTED 発生する 発生する 発生する 発生する 指定してもREAD COMMITEDで動作 READ COMMITTED 発生しない 発生する 発生する 発生する デフォルト.

第2 この指導指針が対象とする開発行為は、東京における自然の保護と回復に関する条例(平成12年東 京都条例第 216 号。以下「条例」という。)第 47

~自動車の環境・エネルギー対策として~.. 【ハイブリッド】 トランスミッション等に

欄は、具体的な書類の名称を記載する。この場合、自己が開発したプログラ

2 環境保全の見地からより遮音効果のあるアーチ形、もしくは高さのある遮音効果のある