SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
Open Source Reporting Solution




                                 株式会社マツケイ
                                    日高 克也
                                    Katsuya Hidaka
                                 Twitter: @hidakatsuya
                                 github: hidakatsuya
                                 Email: hidakatsuya@gmail.com
Rubyによる
 Rubyのための
帳票ソリューション
提供

株式会社マツケイ
  (島根県)
しまねけん?
なぜ
 Rubyの
帳票ツール?
満足できるものが
   無くて困っていた
✗ 日本語未対応...
✗ GUIデザイナがない
✗ さすがに高い
✗ さすがに遅い
✗ 使いにくい...
なら、作ればいい
Pure Ruby!
オープンソース
業務システムでも使える
特徴
ThinReports Editor
ThinReports Editor
๏ 専用デザイナ

๏ マルチプラットフォーム対応
๏ GNU GPLv3
๏ 多くのOSS、標準技術で実現
 Webkit/Qt/HTML5/CSS3/SVG/JavaScript/Closure Tools etc..
ThinReports Generator
ThinReports Generator
 ๏ Editorで作成したレイアウトから
   帳票を生成するライブラリ (PDF)
 ๏ Pure Ruby
 ๏ マルチプラットフォーム対応
 ๏ The MIT License
こうやって使います。
1. 帳票レイアウトを
     作る
2. スクリプトを
              書いて実行
# coding: utf-8
require 'thinreports'

report = ThinReports::Report.new :layout => 'question.tlf'

report.start_new_page do
  item(:answer).value('Ruby!!!')
end

report.generate_file('question.pdf')


% ruby question.rb
3. PDFのできあがり
できること
一覧表の自動生成




詳細行が領域を溢れた場合は、自動的に改頁される。
現時点では「ヘッダー/フッター/ページフッター/詳細行」を持つ一覧表を作成できる。
外字の表示




Windowsの外字エディタで作成した外字ファイル(EUDC.TTE)をThinReportsに指定す
ることで、外字データを含むPDFを正しく表示することが可能。
グラフやバーコードの表示




イメージブロック機能(動的画像の埋込み機能)とグラフやバーコード画像を生成するラ
イブラリを組み合わせることで、柔軟に対応できる。
パスワード/操作制限
仕様書の自動生成




Editor から HTML/CSV 形式で仕様書を生成することが可能。これによって「デザイン
とコードの分離」をサポート。
Railsでも
# Gemfile
gem 'thinreports'


# app/controller/test_controller.rb
class TestController < ApplicationController
  def render_reports
    report = ThinReports::Report.new :layout => '/path/to/layout.tlf'
    report.start_new_page do
      # do something
    end

    send_data report.generate, :filename    => 'foo.pdf',
                               :type        => 'application/pdf',
                               :disposition => 'attachment'
  end
end
その他
๏ 画像の埋め込み(静的・動的)

๏ 動的なスタイル操作

など
できないこと
イマイチなこと
フォントは4種類のみ
๏ Helvetica (Sans-serif)

๏ Courier New (Monospace)
๏ Times New Roman (Serif)
๏ IPAフォント (明朝/ゴシック)
一覧表の機能がまだまだ
๏ 小計行を簡単には実現できない
 現在は、詳細行/ページフッター/フッターのみ

๏ 高さが可変な行は実現できない
 かなり難しいかもしれない...

๏ Editor 上の操作性がイマイチ
今後
0.7.5リリース
๏ 2012.2 2012.4予定
๏ Editorの国際化
๏ カスタムフォント機能
๏ 操作性の改善
thinreports-rails
๏ 2012.2 2012.3予定
๏ Rails3用拡張ライブラリ
๏ Rails3で、より簡単に
 ThinReportsを使える
ご案内
www.thinreports.org




   ThinReports に興味のある方は、まずはこちらへ
github




ThinReports の全てのソースコードは、github で公開
osc.matsukei.net




 ロードマップやタスク、進捗状況の閲覧に加えて、
      ドキュメントやフォーラムも
tw: @thinreports_org
 fb: ThinReports.org
お知らせ
有償サポート始めました
๏ メールによるQAが基本
๏ メニューはありません
๏ 公式サイトよりお問い合
 せ下さい
ありがとうございました

Mais conteúdo relacionado

Mais procurados

楽天テクノロジーカンファレンス2009
楽天テクノロジーカンファレンス2009楽天テクノロジーカンファレンス2009
楽天テクノロジーカンファレンス2009
gaooh
 
「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告
Kazuchika Sekiya
 

Mais procurados (18)

kintonedevcamp2016s-demo
kintonedevcamp2016s-demokintonedevcamp2016s-demo
kintonedevcamp2016s-demo
 
楽天テクノロジーカンファレンス2009
楽天テクノロジーカンファレンス2009楽天テクノロジーカンファレンス2009
楽天テクノロジーカンファレンス2009
 
GraphQLについての5分間
GraphQLについての5分間GraphQLについての5分間
GraphQLについての5分間
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
 
Cloud functionsの紹介
Cloud functionsの紹介Cloud functionsの紹介
Cloud functionsの紹介
 
Okinawa makers
Okinawa makersOkinawa makers
Okinawa makers
 
Node-RED のフローを isaax で配信してみた
Node-RED のフローを isaax で配信してみたNode-RED のフローを isaax で配信してみた
Node-RED のフローを isaax で配信してみた
 
Rnyoutube
RnyoutubeRnyoutube
Rnyoutube
 
Google Home をつかって おじいちゃんにGoogle Home の使い方を教える
Google Home をつかって おじいちゃんにGoogle Home の使い方を教えるGoogle Home をつかって おじいちゃんにGoogle Home の使い方を教える
Google Home をつかって おじいちゃんにGoogle Home の使い方を教える
 
React Nativeでお絵描きしてみた
React Nativeでお絵描きしてみたReact Nativeでお絵描きしてみた
React Nativeでお絵描きしてみた
 
Let's make rest server by golang
Let's make rest server by golangLet's make rest server by golang
Let's make rest server by golang
 
kanazawa.rb LT gem
kanazawa.rb LT gemkanazawa.rb LT gem
kanazawa.rb LT gem
 
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
20190921 Google Apps Script(GAS) メインで Google Assistant アプリを作った話
 
第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT第13回 Tokyo Jazug Night LT
第13回 Tokyo Jazug Night LT
 
KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話KotlinつかってQiitaクライアント作った時の話
KotlinつかってQiitaクライアント作った時の話
 
まんまとリレーションされた話
まんまとリレーションされた話まんまとリレーションされた話
まんまとリレーションされた話
 
「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告「プログラミングGroovy」発売予告
「プログラミングGroovy」発売予告
 
Vs2019 を試してみる会
Vs2019 を試してみる会Vs2019 を試してみる会
Vs2019 を試してみる会
 

Semelhante a Fukuoka Ruby Award 2012

マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
CData Software Japan
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
Akihiro Kuwano
 
20120324 git training
20120324 git training20120324 git training
20120324 git training
Takeshi AKIMA
 

Semelhante a Fukuoka Ruby Award 2012 (20)

SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
 
OSC 2013 .Enterprise
OSC 2013 .EnterpriseOSC 2013 .Enterprise
OSC 2013 .Enterprise
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 
【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう【初心者向け】API を使ってクラウドの管理を自動化しよう
【初心者向け】API を使ってクラウドの管理を自動化しよう
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったかエンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
エンジニア以外の方が自らSQLを使ってセグメント分析を行うカルチャーをどのように作っていったか
 
Example using LattePanda
Example  using LattePandaExample  using LattePanda
Example using LattePanda
 
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
ルータコンフィグのGit管理のススメ 〜Git管理以外を自動化してみた〜
 
バージョン管理
バージョン管理バージョン管理
バージョン管理
 
【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力【A-4】kintone API、JavaScript APIの実力
【A-4】kintone API、JavaScript APIの実力
 
マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方マルチクラウドデータ連携Javaアプリケーションの作り方
マルチクラウドデータ連携Javaアプリケーションの作り方
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
 
20120324 git training
20120324 git training20120324 git training
20120324 git training
 
UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介
UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介
UIを作る際にライブラリにする?それともDIYする?の切り分け&実装のアイデア例と事例紹介
 
RxSwiftとMVVMパターンと仲良くなる次のステップ
RxSwiftとMVVMパターンと仲良くなる次のステップRxSwiftとMVVMパターンと仲良くなる次のステップ
RxSwiftとMVVMパターンと仲良くなる次のステップ
 
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
 
KokotapでPodのパケットキャプチャ
KokotapでPodのパケットキャプチャKokotapでPodのパケットキャプチャ
KokotapでPodのパケットキャプチャ
 

Último

Último (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Fukuoka Ruby Award 2012

Notas do Editor

  1. &amp;#x305D;&amp;#x308C;&amp;#x3067;&amp;#x306F;&amp;#x3001;ThinReports&amp;#x306E;&amp;#x767A;&amp;#x8868;&amp;#x3092;&amp;#x59CB;&amp;#x3081;&amp;#x3055;&amp;#x3057;&amp;#x3066;&amp;#x9802;&amp;#x304D;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x5CF6;&amp;#x6839;&amp;#x770C;&amp;#x304B;&amp;#x3089;&amp;#x53C2;&amp;#x308A;&amp;#x307E;&amp;#x3057;&amp;#x305F;&amp;#x3001;&amp;#x682A;&amp;#x5F0F;&amp;#x4F1A;&amp;#x793E;&amp;#x30DE;&amp;#x30C4;&amp;#x30B1;&amp;#x30A4;&amp;#x306E;&amp;#x65E5;&amp;#x9AD8;&amp;#x3067;&amp;#x3059;&amp;#x3002;&amp;#x3088;&amp;#x308D;&amp;#x3057;&amp;#x304F;&amp;#x304A;&amp;#x9858;&amp;#x3044;&amp;#x81F4;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  2. ThinReports&amp;#x3068;&amp;#x306F;&amp;#x306A;&amp;#x3093;&amp;#x306A;&amp;#x306E;&amp;#x304B;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3068;&amp;#x3001;\n&amp;#x300C;Ruby&amp;#x306B;&amp;#x3088;&amp;#x308B;&amp;#x3001;Ruby&amp;#x306E;&amp;#x305F;&amp;#x3081;&amp;#x306E;&amp;#x5E33;&amp;#x7968;&amp;#x30BD;&amp;#x30EA;&amp;#x30E5;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3;&amp;#x300D;\n&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  3. ThinReports&amp;#x3068;&amp;#x306F;&amp;#x306A;&amp;#x3093;&amp;#x306A;&amp;#x306E;&amp;#x304B;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3068;&amp;#x3001;\n&amp;#x300C;Ruby&amp;#x306B;&amp;#x3088;&amp;#x308B;&amp;#x3001;Ruby&amp;#x306E;&amp;#x305F;&amp;#x3081;&amp;#x306E;&amp;#x5E33;&amp;#x7968;&amp;#x30BD;&amp;#x30EA;&amp;#x30E5;&amp;#x30FC;&amp;#x30B7;&amp;#x30E7;&amp;#x30F3;&amp;#x300D;\n&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  4. &amp;#x3067;&amp;#x306F;&amp;#x3001;&amp;#xFF13;&amp;#x3064;&amp;#x306E;&amp;#x7279;&amp;#x5FB4;&amp;#x3092;&amp;#x3042;&amp;#x3052;&amp;#x3066;&amp;#x3001;&amp;#x3082;&amp;#x3046;&amp;#x5C11;&amp;#x3057;&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x3054;&amp;#x8AAC;&amp;#x660E;&amp;#x3057;&amp;#x305F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  5. &amp;#x305D;&amp;#x3093;&amp;#x306A;ThinReports&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;\n&amp;#x306A;&amp;#x305C;Ruby&amp;#x306E;&amp;#x5E33;&amp;#x7968;&amp;#x30C4;&amp;#x30FC;&amp;#x30EB;&amp;#x306A;&amp;#x306E;&amp;#x304B;&amp;#xFF1F;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3068;&amp;#x3001;\n
  6. &amp;#x3053;&amp;#x308C;&amp;#x306F;&amp;#x3001;\nGUI&amp;#x4E0A;&amp;#x3067;&amp;#x30EC;&amp;#x30A4;&amp;#x30A2;&amp;#x30A6;&amp;#x30C8;&amp;#x306E;&amp;#x4F5C;&amp;#x6210;&amp;#x3084;&amp;#x7DE8;&amp;#x96C6;&amp;#x304C;&amp;#x3067;&amp;#x304D;&amp;#x3001;\n&amp;#x5148;&amp;#x307B;&amp;#x3069;&amp;#x898B;&amp;#x3066;&amp;#x9802;&amp;#x3044;&amp;#x305F;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#xFF08;&amp;#x524D;&amp;#x30DA;&amp;#x30FC;&amp;#x30B8;&amp;#x3078;&amp;#xFF09;&amp;#x3001;Mac/Linux/Windows&amp;#x3067;&amp;#x52D5;&amp;#x4F5C;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  7. \n
  8. &amp;#x307E;&amp;#x305A;&amp;#x3001;&amp;#x4E00;&amp;#x3064;&amp;#x76EE;&amp;#x306E;&amp;#x7279;&amp;#x5FB4;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x3001;\n&amp;#x5C02;&amp;#x7528;&amp;#x30C7;&amp;#x30B6;&amp;#x30A4;&amp;#x30CA;&amp;#x3068;&amp;#x5C02;&amp;#x7528;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x304C;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  9. &amp;#x5E33;&amp;#x7968;&amp;#x30C4;&amp;#x30FC;&amp;#x30EB;&amp;#x3067;&amp;#x3059;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x5F53;&amp;#x7136;&amp;#x5E33;&amp;#x7968;&amp;#x30EC;&amp;#x30A4;&amp;#x30A2;&amp;#x30A6;&amp;#x30C8;&amp;#x3092;&amp;#x4F5C;&amp;#x6210;&amp;#x3059;&amp;#x308B;GUI&amp;#x30C4;&amp;#x30FC;&amp;#x30EB;&amp;#x304C;&amp;#x5FC5;&amp;#x8981;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n&amp;#x305D;&amp;#x308C;&amp;#x304C;&amp;#x3001;&amp;#x3053;&amp;#x306E;ThinReports Editor&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  10. &amp;#x3053;&amp;#x308C;&amp;#x306F;&amp;#x3001;\nGUI&amp;#x4E0A;&amp;#x3067;&amp;#x30EC;&amp;#x30A4;&amp;#x30A2;&amp;#x30A6;&amp;#x30C8;&amp;#x306E;&amp;#x4F5C;&amp;#x6210;&amp;#x3084;&amp;#x7DE8;&amp;#x96C6;&amp;#x304C;&amp;#x3067;&amp;#x304D;&amp;#x3001;\n&amp;#x5148;&amp;#x307B;&amp;#x3069;&amp;#x898B;&amp;#x3066;&amp;#x9802;&amp;#x3044;&amp;#x305F;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#xFF08;&amp;#x524D;&amp;#x30DA;&amp;#x30FC;&amp;#x30B8;&amp;#x3078;&amp;#xFF09;&amp;#x3001;Mac/Linux/Windows&amp;#x3067;&amp;#x52D5;&amp;#x4F5C;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  11. &amp;#x5BFE;&amp;#x3057;&amp;#x3066;&amp;#x3001;Ruby&amp;#x7528;&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x3057;&amp;#x3066;\nThinReports Generator&amp;#x304C;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  12. &amp;#x3053;&amp;#x308C;&amp;#x306F;&amp;#x4F55;&amp;#x304B;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3068;&amp;#x3001;&amp;#x5148;&amp;#x307B;&amp;#x3069;&amp;#x306E;Editor&amp;#x3067;&amp;#x4F5C;&amp;#x6210;&amp;#x3057;&amp;#x305F;&amp;#x30EC;&amp;#x30A4;&amp;#x30A2;&amp;#x30A6;&amp;#x30C8;&amp;#x3092;&amp;#x8AAD;&amp;#x307F;&amp;#x8FBC;&amp;#x3093;&amp;#x3067;&amp;#x3001;\n&amp;#x6700;&amp;#x7D42;&amp;#x7684;&amp;#x306A;&amp;#x5E33;&amp;#x7968;&amp;#x3092;&amp;#x751F;&amp;#x6210;&amp;#x3059;&amp;#x308B;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n\n&amp;#x5927;&amp;#x304D;&amp;#x306A;&amp;#x7279;&amp;#x5FB4;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x306F;&amp;#x3001;Pure-Ruby&amp;#x304C;&amp;#x3042;&amp;#x3052;&amp;#x3089;&amp;#x308C;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x3064;&amp;#x307E;&amp;#x308A;&amp;#x3001;&amp;#x5168;&amp;#x3066;Ruby&amp;#x3067;&amp;#x4F5C;&amp;#x3089;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x305F;&amp;#x3081;&amp;#x3001;Ruby&amp;#x304C;&amp;#x52D5;&amp;#x4F5C;&amp;#x3059;&amp;#x308C;&amp;#x3070;&amp;#x540C;&amp;#x69D8;&amp;#x306B;&amp;#x52D5;&amp;#x304F;&amp;#x3001;&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x3053;&amp;#x3068;&amp;#x306B;&amp;#x306A;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  13. &amp;#x305D;&amp;#x308C;&amp;#x3067;&amp;#x306F;&amp;#x3001;&amp;#x7C21;&amp;#x5358;&amp;#x306A;&amp;#x4F7F;&amp;#x3044;&amp;#x65B9;&amp;#x3092;&amp;#x3054;&amp;#x7D39;&amp;#x4ECB;&amp;#x3057;&amp;#x305F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  14. &amp;#x307E;&amp;#x305A;&amp;#x306F;&amp;#x3001;&amp;#x5E33;&amp;#x7968;&amp;#x30EC;&amp;#x30A4;&amp;#x30A2;&amp;#x30A6;&amp;#x30C8;&amp;#x3092;&amp;#x4F5C;&amp;#x6210;&amp;#x3059;&amp;#x308B;&amp;#x5FC5;&amp;#x8981;&amp;#x304C;&amp;#x3042;&amp;#x308A;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x3053;&amp;#x306E;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3001;Editor&amp;#x3092;&amp;#x8D77;&amp;#x52D5;&amp;#x3057;&amp;#x300C;Q. &amp;#x56FD;&amp;#x7523;&amp;#x306E;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30DF;&amp;#x30F3;&amp;#x30B0;&amp;#x8A00;&amp;#x8A9E;&amp;#x3068;&amp;#x8A00;&amp;#x3048;&amp;#x3070;&amp;#xFF1F;A.&amp;#x300D;&amp;#x3068;&amp;#x3044;&amp;#x3046;\n&amp;#x30C6;&amp;#x30AD;&amp;#x30B9;&amp;#x30C8;&amp;#x3092;&amp;#x8CBC;&amp;#x4ED8;&amp;#x3051;&amp;#x3001;&amp;#x56DE;&amp;#x7B54;&amp;#x306E;&amp;#x90E8;&amp;#x5206;&amp;#x306B;&amp;#x306F;&amp;#x3001;answer&amp;#x3068;&amp;#x3044;&amp;#x3046;ID&amp;#x3082;&amp;#x3064;&amp;#x30C6;&amp;#x30AD;&amp;#x30B9;&amp;#x30C8;&amp;#x30D6;&amp;#x30ED;&amp;#x30C3;&amp;#x30AF;&amp;#x3092;&amp;#x8CBC;&amp;#x4ED8;&amp;#x3051;&amp;#x307E;&amp;#x3059;&amp;#x3002;&amp;#x30AA;&amp;#x30EC;&amp;#x30F3;&amp;#x30B8;&amp;#x3063;&amp;#x307D;&amp;#x3044;&amp;#x90E8;&amp;#x5206;&amp;#x3067;&amp;#x3059;&amp;#x306D;&amp;#x3002;&amp;#x305D;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x4FDD;&amp;#x5B58;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  15. &amp;#x305D;&amp;#x306E;&amp;#x4E0A;&amp;#x3067;&amp;#x3001;\nThinReports Generator&amp;#x3092;&amp;#x4F7F;&amp;#x3063;&amp;#x3066;&amp;#x3001;&amp;#x51FA;&amp;#x529B;&amp;#x30D7;&amp;#x30ED;&amp;#x30B0;&amp;#x30E9;&amp;#x30E0;&amp;#x3092;&amp;#x4F5C;&amp;#x6210;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x8A73;&amp;#x3057;&amp;#x304F;&amp;#x306F;&amp;#x3054;&amp;#x8AAC;&amp;#x660E;&amp;#x3057;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x304C;&amp;#x3001;\n\n1. ThinReports&amp;#x3092;&amp;#x8AAD;&amp;#x307F;&amp;#x8FBC;&amp;#x307F;&amp;#x3001;\n2. &amp;#x5148;&amp;#x307B;&amp;#x3069;&amp;#x4F5C;&amp;#x6210;&amp;#x3057;&amp;#x305F;&amp;#x30EC;&amp;#x30A4;&amp;#x30A2;&amp;#x30A6;&amp;#x30C8;&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x3092;&amp;#x4F7F;&amp;#x3063;&amp;#x3066;&amp;#x3001;&amp;#x65B0;&amp;#x3057;&amp;#x3044;&amp;#x30EC;&amp;#x30DD;&amp;#x30FC;&amp;#x30C8;&amp;#x3092;&amp;#x4F5C;&amp;#x6210;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n3. &amp;#x305D;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x65B0;&amp;#x3057;&amp;#x3044;&amp;#x30DA;&amp;#x30FC;&amp;#x30B8;&amp;#x3092;&amp;#x4F5C;&amp;#x6210;&amp;#x3057;&amp;#x3001;\n4. &amp;#x30DA;&amp;#x30FC;&amp;#x30B8;&amp;#x5185;&amp;#x306E;answer&amp;#x3068;&amp;#x3044;&amp;#x3046;ID&amp;#x3092;&amp;#x6301;&amp;#x3064;&amp;#x90E8;&amp;#x5206;&amp;#x306B; &amp;#x201C;Ruby&amp;#x201D; &amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x6587;&amp;#x5B57;&amp;#x5217;&amp;#x3092;&amp;#x57CB;&amp;#x3081;&amp;#x8FBC;&amp;#x307F;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n5. &amp;#x6700;&amp;#x5F8C;&amp;#x306B;&amp;#x3001;question.pdf &amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x30D5;&amp;#x30A1;&amp;#x30A4;&amp;#x30EB;&amp;#x3092;&amp;#x4F5C;&amp;#x6210;&amp;#x3059;&amp;#x308B;&amp;#x3001;\n\n&amp;#x3068;&amp;#x3044;&amp;#x3046;&amp;#x6D41;&amp;#x308C;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n&amp;#x3053;&amp;#x308C;&amp;#x3092;&amp;#x5B9F;&amp;#x884C;&amp;#x3059;&amp;#x308B;&amp;#x3068;&amp;#x3001;\n
  16. &amp;#x3053;&amp;#x306E;&amp;#x3088;&amp;#x3046;&amp;#x306B;&amp;#x3001;\nanswer&amp;#x306E;&amp;#x90E8;&amp;#x5206;&amp;#x306B;Ruby&amp;#x304C;&amp;#x57CB;&amp;#x3081;&amp;#x8FBC;&amp;#x307E;&amp;#x308C;&amp;#x305F;PDF&amp;#x304C;&amp;#x751F;&amp;#x6210;&amp;#x3055;&amp;#x308C;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n\n&amp;#x4EE5;&amp;#x4E0A;&amp;#x304C;&amp;#x3001;ThinReports&amp;#x306E;&amp;#x57FA;&amp;#x672C;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  17. &amp;#x4E8C;&amp;#x3064;&amp;#x76EE;&amp;#x306E;&amp;#x7279;&amp;#x5FB4;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x3001;\nThinReports&amp;#x306F;&amp;#x3001;&amp;#x696D;&amp;#x52D9;&amp;#x30B7;&amp;#x30B9;&amp;#x30C6;&amp;#x30E0;&amp;#x5411;&amp;#x3051;&amp;#x306B;&amp;#x958B;&amp;#x767A;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  18. &amp;#x696D;&amp;#x52D9;&amp;#x30B7;&amp;#x30B9;&amp;#x30C6;&amp;#x30E0;&amp;#x3067;&amp;#x3088;&amp;#x304F;&amp;#x3042;&amp;#x308B;&amp;#x4E00;&amp;#x89A7;&amp;#x8868;&amp;#x3092;&amp;#x4F5C;&amp;#x6210;&amp;#x3059;&amp;#x308B;&amp;#x6A5F;&amp;#x80FD;&amp;#x304C;&amp;#x3042;&amp;#x3063;&amp;#x305F;&amp;#x308A;&amp;#x3001;\n
  19. &amp;#x5916;&amp;#x5B57;&amp;#x3092;&amp;#x30B5;&amp;#x30DD;&amp;#x30FC;&amp;#x30C8;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x305F;&amp;#x308A;&amp;#x3001;\n
  20. Ruby&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x306E;&amp;#x7D44;&amp;#x307F;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;\n&amp;#x30D0;&amp;#x30FC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x52D5;&amp;#x7684;&amp;#x306B;&amp;#x8868;&amp;#x793A;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3082;&amp;#x53EF;&amp;#x80FD;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  21. Ruby&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x306E;&amp;#x7D44;&amp;#x307F;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;\n&amp;#x30D0;&amp;#x30FC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x52D5;&amp;#x7684;&amp;#x306B;&amp;#x8868;&amp;#x793A;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3082;&amp;#x53EF;&amp;#x80FD;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  22. Ruby&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x306E;&amp;#x7D44;&amp;#x307F;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;\n&amp;#x30D0;&amp;#x30FC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x52D5;&amp;#x7684;&amp;#x306B;&amp;#x8868;&amp;#x793A;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3082;&amp;#x53EF;&amp;#x80FD;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  23. Ruby&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x306E;&amp;#x7D44;&amp;#x307F;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;\n&amp;#x30D0;&amp;#x30FC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x52D5;&amp;#x7684;&amp;#x306B;&amp;#x8868;&amp;#x793A;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3082;&amp;#x53EF;&amp;#x80FD;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  24. Ruby&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x306E;&amp;#x7D44;&amp;#x307F;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;\n&amp;#x30D0;&amp;#x30FC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x52D5;&amp;#x7684;&amp;#x306B;&amp;#x8868;&amp;#x793A;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3082;&amp;#x53EF;&amp;#x80FD;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  25. &amp;#x4E8C;&amp;#x3064;&amp;#x76EE;&amp;#x306E;&amp;#x7279;&amp;#x5FB4;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x3001;\nThinReports&amp;#x306F;&amp;#x3001;&amp;#x696D;&amp;#x52D9;&amp;#x30B7;&amp;#x30B9;&amp;#x30C6;&amp;#x30E0;&amp;#x5411;&amp;#x3051;&amp;#x306B;&amp;#x958B;&amp;#x767A;&amp;#x3055;&amp;#x308C;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  26. Ruby&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x306E;&amp;#x7D44;&amp;#x307F;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;\n&amp;#x30D0;&amp;#x30FC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x52D5;&amp;#x7684;&amp;#x306B;&amp;#x8868;&amp;#x793A;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3082;&amp;#x53EF;&amp;#x80FD;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  27. Ruby&amp;#x306E;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3068;&amp;#x306E;&amp;#x7D44;&amp;#x307F;&amp;#x5408;&amp;#x308F;&amp;#x305B;&amp;#x306B;&amp;#x3088;&amp;#x3063;&amp;#x3066;&amp;#x3001;\n&amp;#x30D0;&amp;#x30FC;&amp;#x30B3;&amp;#x30FC;&amp;#x30C9;&amp;#x3092;&amp;#x52D5;&amp;#x7684;&amp;#x306B;&amp;#x8868;&amp;#x793A;&amp;#x3059;&amp;#x308B;&amp;#x3053;&amp;#x3068;&amp;#x3082;&amp;#x53EF;&amp;#x80FD;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  28. &amp;#x3067;&amp;#x306F;&amp;#x3001;ThinReports&amp;#x306E;&amp;#x4ECA;&amp;#x5F8C;&amp;#x306B;&amp;#x3064;&amp;#x3044;&amp;#x3066;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;\n
  29. &amp;#x7D9A;&amp;#x3044;&amp;#x3066;&amp;#x3001;&amp;#x6B21;&amp;#x306E;&amp;#x30D0;&amp;#x30FC;&amp;#x30B8;&amp;#x30E7;&amp;#x30F3;&amp;#x3067;&amp;#x3042;&amp;#x308B;0.7.5&amp;#x3092;&amp;#x540C;&amp;#x3058;&amp;#x304F;2&amp;#x6708;&amp;#x306B;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3059;&amp;#x308B;&amp;#x4E88;&amp;#x5B9A;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n&amp;#x3053;&amp;#x306E;&amp;#x30D0;&amp;#x30FC;&amp;#x30B8;&amp;#x30E7;&amp;#x30F3;&amp;#x3067;&amp;#x306F;&amp;#x3001;Editor&amp;#x306E;&amp;#x56FD;&amp;#x969B;&amp;#x5316;&amp;#x3084;&amp;#x30AB;&amp;#x30B9;&amp;#x30BF;&amp;#x30E0;&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x306E;&amp;#x5BFE;&amp;#x5FDC;&amp;#x3092;&amp;#x884C;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n\n&amp;#x30AB;&amp;#x30B9;&amp;#x30BF;&amp;#x30E0;&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x306B;&amp;#x3064;&amp;#x3044;&amp;#x3066;&amp;#x306F;&amp;#x3001;&amp;#x73FE;&amp;#x5728;&amp;#x306E;ThinReports&amp;#x3067;&amp;#x306F;&amp;#x3001;&amp;#x9650;&amp;#x3089;&amp;#x308C;&amp;#x305F;&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x3057;&amp;#x304B;&amp;#x4F7F;&amp;#x7528;&amp;#x3067;&amp;#x304D;&amp;#x307E;&amp;#x305B;&amp;#x3093;&amp;#x304C;&amp;#x3001;\n&amp;#x3053;&amp;#x308C;&amp;#x3092;&amp;#x4EFB;&amp;#x610F;&amp;#x306E;&amp;#x30D5;&amp;#x30A9;&amp;#x30F3;&amp;#x30C8;&amp;#x304C;&amp;#x5229;&amp;#x7528;&amp;#x3067;&amp;#x304D;&amp;#x308B;&amp;#x3088;&amp;#x3046;&amp;#x306A;&amp;#x6A5F;&amp;#x80FD;&amp;#x3068;&amp;#x306A;&amp;#x308B;&amp;#x4E88;&amp;#x5B9A;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  30. &amp;#x307E;&amp;#x305F;&amp;#x3001;Rails&amp;#x3067;ThinReports&amp;#x3092;&amp;#x3001;&amp;#x3088;&amp;#x308A;&amp;#x7C21;&amp;#x5358;&amp;#x306B;&amp;#x3001;&amp;#x30B7;&amp;#x30FC;&amp;#x30E0;&amp;#x30EC;&amp;#x30B9;&amp;#x306B;&amp;#x4F7F;&amp;#x3046;&amp;#x305F;&amp;#x3081;&amp;#x306E;&amp;#x62E1;&amp;#x5F35;&amp;#x30E9;&amp;#x30A4;&amp;#x30D6;&amp;#x30E9;&amp;#x30EA;&amp;#x3082;&amp;#x30EA;&amp;#x30EA;&amp;#x30FC;&amp;#x30B9;&amp;#x3057;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  31. &amp;#x3067;&amp;#x306F;&amp;#x3001;ThinReports&amp;#x306E;&amp;#x4ECA;&amp;#x5F8C;&amp;#x306B;&amp;#x3064;&amp;#x3044;&amp;#x3066;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;\n
  32. &amp;#x307E;&amp;#x305A;&amp;#x3001;&amp;#x30BD;&amp;#x30FC;&amp;#x30B9;&amp;#x306F;&amp;#x5168;&amp;#x3066;github&amp;#x3067;&amp;#x516C;&amp;#x958B;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  33. &amp;#x307E;&amp;#x305A;&amp;#x3001;&amp;#x30BD;&amp;#x30FC;&amp;#x30B9;&amp;#x306F;&amp;#x5168;&amp;#x3066;github&amp;#x3067;&amp;#x516C;&amp;#x958B;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  34. &amp;#x307E;&amp;#x305F;&amp;#x3001;&amp;#x30D7;&amp;#x30ED;&amp;#x30B8;&amp;#x30A7;&amp;#x30AF;&amp;#x30C8;&amp;#x81EA;&amp;#x4F53;&amp;#x3082;&amp;#x3001;&amp;#x5F0A;&amp;#x793E;&amp;#x304C;&amp;#x72EC;&amp;#x81EA;&amp;#x306B;&amp;#x904B;&amp;#x55B6;&amp;#x3059;&amp;#x308B;&amp;#x30D7;&amp;#x30ED;&amp;#x30B8;&amp;#x30A7;&amp;#x30AF;&amp;#x30C8;&amp;#x30B5;&amp;#x30A4;&amp;#x30C8;&amp;#x4E0A;&amp;#x3067;&amp;#x5168;&amp;#x3066;&amp;#x516C;&amp;#x958B;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n\n&amp;#x3061;&amp;#x306A;&amp;#x307F;&amp;#x306B;&amp;#x3001;&amp;#x3053;&amp;#x306E; Matsukei Open Source Center &amp;#x306F;&amp;#x3001;&amp;#x5F0A;&amp;#x793E;&amp;#x304C;&amp;#x5F0A;&amp;#x793E;&amp;#x306E;&amp;#x8CC7;&amp;#x7523;&amp;#x3092;&amp;#x7A4D;&amp;#x6975;&amp;#x7684;&amp;#x306B;&amp;#x30AA;&amp;#x30FC;&amp;#x30D7;&amp;#x30F3;&amp;#x30BD;&amp;#x30FC;&amp;#x30B9;&amp;#x3068;&amp;#x3057;&amp;#x3066;\n&amp;#x516C;&amp;#x958B;&amp;#x3059;&amp;#x308B;&amp;#x5834;&amp;#x3068;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x5F0A;&amp;#x793E;&amp;#x72EC;&amp;#x81EA;&amp;#x306B;&amp;#x904B;&amp;#x55B6;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x308B;&amp;#x30DD;&amp;#x30FC;&amp;#x30BF;&amp;#x30EB;&amp;#x30B5;&amp;#x30A4;&amp;#x30C8;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  35. &amp;#x305D;&amp;#x3057;&amp;#x3066;&amp;#x3001;&amp;#x516C;&amp;#x5F0F;&amp;#x30B5;&amp;#x30A4;&amp;#x30C8;&amp;#x3092;&amp;#x59CB;&amp;#x3081;&amp;#x3001;Twitter&amp;#x3001;Facebook&amp;#x3067;&amp;#x968F;&amp;#x6642;&amp;#x3001;&amp;#x60C5;&amp;#x5831;&amp;#x767A;&amp;#x4FE1;&amp;#x3057;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n
  36. &amp;#x3067;&amp;#x306F;&amp;#x3001;ThinReports&amp;#x306E;&amp;#x4ECA;&amp;#x5F8C;&amp;#x306B;&amp;#x3064;&amp;#x3044;&amp;#x3066;&amp;#x3067;&amp;#x3059;&amp;#x304C;&amp;#x3001;\n
  37. &amp;#x696D;&amp;#x52D9;&amp;#x30B7;&amp;#x30B9;&amp;#x30C6;&amp;#x30E0;&amp;#x5411;&amp;#x3051;&amp;#x3067;&amp;#x3059;&amp;#x306E;&amp;#x3067;&amp;#x3001;&amp;#x307E;&amp;#x305A;&amp;#x306F;&amp;#x6709;&amp;#x511F;&amp;#x30B5;&amp;#x30DD;&amp;#x30FC;&amp;#x30C8;&amp;#x3092;&amp;#x63D0;&amp;#x4F9B;&amp;#x3057;&amp;#x305F;&amp;#x3044;&amp;#x3068;&amp;#x601D;&amp;#x3063;&amp;#x3066;&amp;#x3044;&amp;#x307E;&amp;#x3059;&amp;#x3002;\n&amp;#x73FE;&amp;#x6642;&amp;#x70B9;&amp;#x3067;&amp;#x306F;&amp;#x3001;&amp;#x6765;&amp;#x6708;2&amp;#x6708;&amp;#x306B;&amp;#x63D0;&amp;#x4F9B;&amp;#x958B;&amp;#x667A;&amp;#x4E88;&amp;#x5B9A;&amp;#x3067;&amp;#x3059;&amp;#x3002;\n
  38. \n