Mais conteúdo relacionado Semelhante a Fukuoka Ruby Award 2012 (20) Fukuoka Ruby Award 20121. Open Source Reporting Solution
株式会社マツケイ
日高 克也
Katsuya Hidaka
Twitter: @hidakatsuya
github: hidakatsuya
Email: hidakatsuya@gmail.com
6. 満足できるものが
無くて困っていた
✗ 日本語未対応...
✗ GUIデザイナがない
✗ さすがに高い
✗ さすがに遅い
✗ 使いにくい...
15. 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
23. 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
Notas do Editor &#x305D;&#x308C;&#x3067;&#x306F;&#x3001;ThinReports&#x306E;&#x767A;&#x8868;&#x3092;&#x59CB;&#x3081;&#x3055;&#x3057;&#x3066;&#x9802;&#x304D;&#x307E;&#x3059;&#x3002;\n&#x5CF6;&#x6839;&#x770C;&#x304B;&#x3089;&#x53C2;&#x308A;&#x307E;&#x3057;&#x305F;&#x3001;&#x682A;&#x5F0F;&#x4F1A;&#x793E;&#x30DE;&#x30C4;&#x30B1;&#x30A4;&#x306E;&#x65E5;&#x9AD8;&#x3067;&#x3059;&#x3002;&#x3088;&#x308D;&#x3057;&#x304F;&#x304A;&#x9858;&#x3044;&#x81F4;&#x3057;&#x307E;&#x3059;&#x3002;\n ThinReports&#x3068;&#x306F;&#x306A;&#x3093;&#x306A;&#x306E;&#x304B;&#x3068;&#x3044;&#x3046;&#x3068;&#x3001;\n&#x300C;Ruby&#x306B;&#x3088;&#x308B;&#x3001;Ruby&#x306E;&#x305F;&#x3081;&#x306E;&#x5E33;&#x7968;&#x30BD;&#x30EA;&#x30E5;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x300D;\n&#x3067;&#x3059;&#x3002;\n ThinReports&#x3068;&#x306F;&#x306A;&#x3093;&#x306A;&#x306E;&#x304B;&#x3068;&#x3044;&#x3046;&#x3068;&#x3001;\n&#x300C;Ruby&#x306B;&#x3088;&#x308B;&#x3001;Ruby&#x306E;&#x305F;&#x3081;&#x306E;&#x5E33;&#x7968;&#x30BD;&#x30EA;&#x30E5;&#x30FC;&#x30B7;&#x30E7;&#x30F3;&#x300D;\n&#x3067;&#x3059;&#x3002;\n &#x3067;&#x306F;&#x3001;&#xFF13;&#x3064;&#x306E;&#x7279;&#x5FB4;&#x3092;&#x3042;&#x3052;&#x3066;&#x3001;&#x3082;&#x3046;&#x5C11;&#x3057;&#x8A73;&#x3057;&#x304F;&#x3054;&#x8AAC;&#x660E;&#x3057;&#x305F;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;\n &#x305D;&#x3093;&#x306A;ThinReports&#x3067;&#x3059;&#x304C;&#x3001;\n&#x306A;&#x305C;Ruby&#x306E;&#x5E33;&#x7968;&#x30C4;&#x30FC;&#x30EB;&#x306A;&#x306E;&#x304B;&#xFF1F;&#x3068;&#x3044;&#x3046;&#x3068;&#x3001;\n &#x3053;&#x308C;&#x306F;&#x3001;\nGUI&#x4E0A;&#x3067;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x306E;&#x4F5C;&#x6210;&#x3084;&#x7DE8;&#x96C6;&#x304C;&#x3067;&#x304D;&#x3001;\n&#x5148;&#x307B;&#x3069;&#x898B;&#x3066;&#x9802;&#x3044;&#x305F;&#x3088;&#x3046;&#x306B;&#xFF08;&#x524D;&#x30DA;&#x30FC;&#x30B8;&#x3078;&#xFF09;&#x3001;Mac/Linux/Windows&#x3067;&#x52D5;&#x4F5C;&#x3057;&#x307E;&#x3059;&#x3002;\n \n &#x307E;&#x305A;&#x3001;&#x4E00;&#x3064;&#x76EE;&#x306E;&#x7279;&#x5FB4;&#x3068;&#x3057;&#x3066;&#x3001;\n&#x5C02;&#x7528;&#x30C7;&#x30B6;&#x30A4;&#x30CA;&#x3068;&#x5C02;&#x7528;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;\n &#x5E33;&#x7968;&#x30C4;&#x30FC;&#x30EB;&#x3067;&#x3059;&#x306E;&#x3067;&#x3001;&#x5F53;&#x7136;&#x5E33;&#x7968;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x3092;&#x4F5C;&#x6210;&#x3059;&#x308B;GUI&#x30C4;&#x30FC;&#x30EB;&#x304C;&#x5FC5;&#x8981;&#x3067;&#x3059;&#x3002;\n&#x305D;&#x308C;&#x304C;&#x3001;&#x3053;&#x306E;ThinReports Editor&#x3067;&#x3059;&#x3002;\n &#x3053;&#x308C;&#x306F;&#x3001;\nGUI&#x4E0A;&#x3067;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x306E;&#x4F5C;&#x6210;&#x3084;&#x7DE8;&#x96C6;&#x304C;&#x3067;&#x304D;&#x3001;\n&#x5148;&#x307B;&#x3069;&#x898B;&#x3066;&#x9802;&#x3044;&#x305F;&#x3088;&#x3046;&#x306B;&#xFF08;&#x524D;&#x30DA;&#x30FC;&#x30B8;&#x3078;&#xFF09;&#x3001;Mac/Linux/Windows&#x3067;&#x52D5;&#x4F5C;&#x3057;&#x307E;&#x3059;&#x3002;\n &#x5BFE;&#x3057;&#x3066;&#x3001;Ruby&#x7528;&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x3057;&#x3066;\nThinReports Generator&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;\n &#x3053;&#x308C;&#x306F;&#x4F55;&#x304B;&#x3068;&#x3044;&#x3046;&#x3068;&#x3001;&#x5148;&#x307B;&#x3069;&#x306E;Editor&#x3067;&#x4F5C;&#x6210;&#x3057;&#x305F;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x3092;&#x8AAD;&#x307F;&#x8FBC;&#x3093;&#x3067;&#x3001;\n&#x6700;&#x7D42;&#x7684;&#x306A;&#x5E33;&#x7968;&#x3092;&#x751F;&#x6210;&#x3059;&#x308B;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3067;&#x3059;&#x3002;\n\n&#x5927;&#x304D;&#x306A;&#x7279;&#x5FB4;&#x3068;&#x3057;&#x3066;&#x306F;&#x3001;Pure-Ruby&#x304C;&#x3042;&#x3052;&#x3089;&#x308C;&#x307E;&#x3059;&#x3002;\n&#x3064;&#x307E;&#x308A;&#x3001;&#x5168;&#x3066;Ruby&#x3067;&#x4F5C;&#x3089;&#x308C;&#x3066;&#x3044;&#x308B;&#x305F;&#x3081;&#x3001;Ruby&#x304C;&#x52D5;&#x4F5C;&#x3059;&#x308C;&#x3070;&#x540C;&#x69D8;&#x306B;&#x52D5;&#x304F;&#x3001;&#x3068;&#x3044;&#x3046;&#x3053;&#x3068;&#x306B;&#x306A;&#x308A;&#x307E;&#x3059;&#x3002;\n &#x305D;&#x308C;&#x3067;&#x306F;&#x3001;&#x7C21;&#x5358;&#x306A;&#x4F7F;&#x3044;&#x65B9;&#x3092;&#x3054;&#x7D39;&#x4ECB;&#x3057;&#x305F;&#x3044;&#x3068;&#x601D;&#x3044;&#x307E;&#x3059;&#x3002;\n &#x307E;&#x305A;&#x306F;&#x3001;&#x5E33;&#x7968;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x3092;&#x4F5C;&#x6210;&#x3059;&#x308B;&#x5FC5;&#x8981;&#x304C;&#x3042;&#x308A;&#x307E;&#x3059;&#x3002;\n&#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;Editor&#x3092;&#x8D77;&#x52D5;&#x3057;&#x300C;Q. &#x56FD;&#x7523;&#x306E;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30DF;&#x30F3;&#x30B0;&#x8A00;&#x8A9E;&#x3068;&#x8A00;&#x3048;&#x3070;&#xFF1F;A.&#x300D;&#x3068;&#x3044;&#x3046;\n&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x3092;&#x8CBC;&#x4ED8;&#x3051;&#x3001;&#x56DE;&#x7B54;&#x306E;&#x90E8;&#x5206;&#x306B;&#x306F;&#x3001;answer&#x3068;&#x3044;&#x3046;ID&#x3082;&#x3064;&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x30D6;&#x30ED;&#x30C3;&#x30AF;&#x3092;&#x8CBC;&#x4ED8;&#x3051;&#x307E;&#x3059;&#x3002;&#x30AA;&#x30EC;&#x30F3;&#x30B8;&#x3063;&#x307D;&#x3044;&#x90E8;&#x5206;&#x3067;&#x3059;&#x306D;&#x3002;&#x305D;&#x3057;&#x3066;&#x3001;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3068;&#x3057;&#x3066;&#x4FDD;&#x5B58;&#x3057;&#x307E;&#x3059;&#x3002;\n &#x305D;&#x306E;&#x4E0A;&#x3067;&#x3001;\nThinReports Generator&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3001;&#x51FA;&#x529B;&#x30D7;&#x30ED;&#x30B0;&#x30E9;&#x30E0;&#x3092;&#x4F5C;&#x6210;&#x3057;&#x307E;&#x3059;&#x3002;\n&#x8A73;&#x3057;&#x304F;&#x306F;&#x3054;&#x8AAC;&#x660E;&#x3057;&#x307E;&#x305B;&#x3093;&#x304C;&#x3001;\n\n1. ThinReports&#x3092;&#x8AAD;&#x307F;&#x8FBC;&#x307F;&#x3001;\n2. &#x5148;&#x307B;&#x3069;&#x4F5C;&#x6210;&#x3057;&#x305F;&#x30EC;&#x30A4;&#x30A2;&#x30A6;&#x30C8;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x4F7F;&#x3063;&#x3066;&#x3001;&#x65B0;&#x3057;&#x3044;&#x30EC;&#x30DD;&#x30FC;&#x30C8;&#x3092;&#x4F5C;&#x6210;&#x3057;&#x307E;&#x3059;&#x3002;\n3. &#x305D;&#x3057;&#x3066;&#x3001;&#x65B0;&#x3057;&#x3044;&#x30DA;&#x30FC;&#x30B8;&#x3092;&#x4F5C;&#x6210;&#x3057;&#x3001;\n4. &#x30DA;&#x30FC;&#x30B8;&#x5185;&#x306E;answer&#x3068;&#x3044;&#x3046;ID&#x3092;&#x6301;&#x3064;&#x90E8;&#x5206;&#x306B; &#x201C;Ruby&#x201D; &#x3068;&#x3044;&#x3046;&#x6587;&#x5B57;&#x5217;&#x3092;&#x57CB;&#x3081;&#x8FBC;&#x307F;&#x307E;&#x3059;&#x3002;\n5. &#x6700;&#x5F8C;&#x306B;&#x3001;question.pdf &#x3068;&#x3044;&#x3046;&#x30D5;&#x30A1;&#x30A4;&#x30EB;&#x3092;&#x4F5C;&#x6210;&#x3059;&#x308B;&#x3001;\n\n&#x3068;&#x3044;&#x3046;&#x6D41;&#x308C;&#x3067;&#x3059;&#x3002;\n&#x3053;&#x308C;&#x3092;&#x5B9F;&#x884C;&#x3059;&#x308B;&#x3068;&#x3001;\n &#x3053;&#x306E;&#x3088;&#x3046;&#x306B;&#x3001;\nanswer&#x306E;&#x90E8;&#x5206;&#x306B;Ruby&#x304C;&#x57CB;&#x3081;&#x8FBC;&#x307E;&#x308C;&#x305F;PDF&#x304C;&#x751F;&#x6210;&#x3055;&#x308C;&#x307E;&#x3059;&#x3002;\n\n&#x4EE5;&#x4E0A;&#x304C;&#x3001;ThinReports&#x306E;&#x57FA;&#x672C;&#x3067;&#x3059;&#x3002;\n &#x4E8C;&#x3064;&#x76EE;&#x306E;&#x7279;&#x5FB4;&#x3068;&#x3057;&#x3066;&#x3001;\nThinReports&#x306F;&#x3001;&#x696D;&#x52D9;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x5411;&#x3051;&#x306B;&#x958B;&#x767A;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n &#x696D;&#x52D9;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x3067;&#x3088;&#x304F;&#x3042;&#x308B;&#x4E00;&#x89A7;&#x8868;&#x3092;&#x4F5C;&#x6210;&#x3059;&#x308B;&#x6A5F;&#x80FD;&#x304C;&#x3042;&#x3063;&#x305F;&#x308A;&#x3001;\n &#x5916;&#x5B57;&#x3092;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x3057;&#x3066;&#x3044;&#x305F;&#x308A;&#x3001;\n Ruby&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x306E;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;\n&#x30D0;&#x30FC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x52D5;&#x7684;&#x306B;&#x8868;&#x793A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;\n Ruby&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x306E;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;\n&#x30D0;&#x30FC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x52D5;&#x7684;&#x306B;&#x8868;&#x793A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;\n Ruby&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x306E;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;\n&#x30D0;&#x30FC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x52D5;&#x7684;&#x306B;&#x8868;&#x793A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;\n Ruby&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x306E;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;\n&#x30D0;&#x30FC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x52D5;&#x7684;&#x306B;&#x8868;&#x793A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;\n Ruby&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x306E;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;\n&#x30D0;&#x30FC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x52D5;&#x7684;&#x306B;&#x8868;&#x793A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;\n &#x4E8C;&#x3064;&#x76EE;&#x306E;&#x7279;&#x5FB4;&#x3068;&#x3057;&#x3066;&#x3001;\nThinReports&#x306F;&#x3001;&#x696D;&#x52D9;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x5411;&#x3051;&#x306B;&#x958B;&#x767A;&#x3055;&#x308C;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n Ruby&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x306E;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;\n&#x30D0;&#x30FC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x52D5;&#x7684;&#x306B;&#x8868;&#x793A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;\n Ruby&#x306E;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3068;&#x306E;&#x7D44;&#x307F;&#x5408;&#x308F;&#x305B;&#x306B;&#x3088;&#x3063;&#x3066;&#x3001;\n&#x30D0;&#x30FC;&#x30B3;&#x30FC;&#x30C9;&#x3092;&#x52D5;&#x7684;&#x306B;&#x8868;&#x793A;&#x3059;&#x308B;&#x3053;&#x3068;&#x3082;&#x53EF;&#x80FD;&#x3067;&#x3059;&#x3002;\n &#x3067;&#x306F;&#x3001;ThinReports&#x306E;&#x4ECA;&#x5F8C;&#x306B;&#x3064;&#x3044;&#x3066;&#x3067;&#x3059;&#x304C;&#x3001;\n &#x7D9A;&#x3044;&#x3066;&#x3001;&#x6B21;&#x306E;&#x30D0;&#x30FC;&#x30B8;&#x30E7;&#x30F3;&#x3067;&#x3042;&#x308B;0.7.5&#x3092;&#x540C;&#x3058;&#x304F;2&#x6708;&#x306B;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x3059;&#x308B;&#x4E88;&#x5B9A;&#x3067;&#x3059;&#x3002;\n&#x3053;&#x306E;&#x30D0;&#x30FC;&#x30B8;&#x30E7;&#x30F3;&#x3067;&#x306F;&#x3001;Editor&#x306E;&#x56FD;&#x969B;&#x5316;&#x3084;&#x30AB;&#x30B9;&#x30BF;&#x30E0;&#x30D5;&#x30A9;&#x30F3;&#x30C8;&#x306E;&#x5BFE;&#x5FDC;&#x3092;&#x884C;&#x3044;&#x307E;&#x3059;&#x3002;\n\n&#x30AB;&#x30B9;&#x30BF;&#x30E0;&#x30D5;&#x30A9;&#x30F3;&#x30C8;&#x306B;&#x3064;&#x3044;&#x3066;&#x306F;&#x3001;&#x73FE;&#x5728;&#x306E;ThinReports&#x3067;&#x306F;&#x3001;&#x9650;&#x3089;&#x308C;&#x305F;&#x30D5;&#x30A9;&#x30F3;&#x30C8;&#x3057;&#x304B;&#x4F7F;&#x7528;&#x3067;&#x304D;&#x307E;&#x305B;&#x3093;&#x304C;&#x3001;\n&#x3053;&#x308C;&#x3092;&#x4EFB;&#x610F;&#x306E;&#x30D5;&#x30A9;&#x30F3;&#x30C8;&#x304C;&#x5229;&#x7528;&#x3067;&#x304D;&#x308B;&#x3088;&#x3046;&#x306A;&#x6A5F;&#x80FD;&#x3068;&#x306A;&#x308B;&#x4E88;&#x5B9A;&#x3067;&#x3059;&#x3002;\n &#x307E;&#x305F;&#x3001;Rails&#x3067;ThinReports&#x3092;&#x3001;&#x3088;&#x308A;&#x7C21;&#x5358;&#x306B;&#x3001;&#x30B7;&#x30FC;&#x30E0;&#x30EC;&#x30B9;&#x306B;&#x4F7F;&#x3046;&#x305F;&#x3081;&#x306E;&#x62E1;&#x5F35;&#x30E9;&#x30A4;&#x30D6;&#x30E9;&#x30EA;&#x3082;&#x30EA;&#x30EA;&#x30FC;&#x30B9;&#x3057;&#x307E;&#x3059;&#x3002;\n &#x3067;&#x306F;&#x3001;ThinReports&#x306E;&#x4ECA;&#x5F8C;&#x306B;&#x3064;&#x3044;&#x3066;&#x3067;&#x3059;&#x304C;&#x3001;\n &#x307E;&#x305A;&#x3001;&#x30BD;&#x30FC;&#x30B9;&#x306F;&#x5168;&#x3066;github&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n &#x307E;&#x305A;&#x3001;&#x30BD;&#x30FC;&#x30B9;&#x306F;&#x5168;&#x3066;github&#x3067;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n &#x307E;&#x305F;&#x3001;&#x30D7;&#x30ED;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x81EA;&#x4F53;&#x3082;&#x3001;&#x5F0A;&#x793E;&#x304C;&#x72EC;&#x81EA;&#x306B;&#x904B;&#x55B6;&#x3059;&#x308B;&#x30D7;&#x30ED;&#x30B8;&#x30A7;&#x30AF;&#x30C8;&#x30B5;&#x30A4;&#x30C8;&#x4E0A;&#x3067;&#x5168;&#x3066;&#x516C;&#x958B;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n\n&#x3061;&#x306A;&#x307F;&#x306B;&#x3001;&#x3053;&#x306E; Matsukei Open Source Center &#x306F;&#x3001;&#x5F0A;&#x793E;&#x304C;&#x5F0A;&#x793E;&#x306E;&#x8CC7;&#x7523;&#x3092;&#x7A4D;&#x6975;&#x7684;&#x306B;&#x30AA;&#x30FC;&#x30D7;&#x30F3;&#x30BD;&#x30FC;&#x30B9;&#x3068;&#x3057;&#x3066;\n&#x516C;&#x958B;&#x3059;&#x308B;&#x5834;&#x3068;&#x3057;&#x3066;&#x3001;&#x5F0A;&#x793E;&#x72EC;&#x81EA;&#x306B;&#x904B;&#x55B6;&#x3057;&#x3066;&#x3044;&#x308B;&#x30DD;&#x30FC;&#x30BF;&#x30EB;&#x30B5;&#x30A4;&#x30C8;&#x3067;&#x3059;&#x3002;\n &#x305D;&#x3057;&#x3066;&#x3001;&#x516C;&#x5F0F;&#x30B5;&#x30A4;&#x30C8;&#x3092;&#x59CB;&#x3081;&#x3001;Twitter&#x3001;Facebook&#x3067;&#x968F;&#x6642;&#x3001;&#x60C5;&#x5831;&#x767A;&#x4FE1;&#x3057;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n &#x3067;&#x306F;&#x3001;ThinReports&#x306E;&#x4ECA;&#x5F8C;&#x306B;&#x3064;&#x3044;&#x3066;&#x3067;&#x3059;&#x304C;&#x3001;\n &#x696D;&#x52D9;&#x30B7;&#x30B9;&#x30C6;&#x30E0;&#x5411;&#x3051;&#x3067;&#x3059;&#x306E;&#x3067;&#x3001;&#x307E;&#x305A;&#x306F;&#x6709;&#x511F;&#x30B5;&#x30DD;&#x30FC;&#x30C8;&#x3092;&#x63D0;&#x4F9B;&#x3057;&#x305F;&#x3044;&#x3068;&#x601D;&#x3063;&#x3066;&#x3044;&#x307E;&#x3059;&#x3002;\n&#x73FE;&#x6642;&#x70B9;&#x3067;&#x306F;&#x3001;&#x6765;&#x6708;2&#x6708;&#x306B;&#x63D0;&#x4F9B;&#x958B;&#x667A;&#x4E88;&#x5B9A;&#x3067;&#x3059;&#x3002;\n \n