SlideShare una empresa de Scribd logo
1 de 98
Descargar para leer sin conexión
Ruby向け帳票ソリューション
「ThinReports」
の開発で知る
OSSの威力
             ThinReports.ORG
                      日高克也
自己紹介
日高 克也
@hidakatsuya
お仕事
Ruby(2007∼)

PHP(2004∼)

業務システム開発
お話すること
1.   ThinReportsの紹介

2.   ThinReportsを支える
     OSS/技術の紹介
ThinReportsの紹介
Rubyによる
Rubyのための
帳票ソリューション
全てオープンソース
  (絶賛公開中)
www.thinreports.org
@ThinReports.org
@thinreports_org
osc.matsukei.net
github
速報!
  2011/10/31
0.7正式版リリース!
さらに、


ITproに掲載されました!
 「Ruby向けOSS帳票ツールThinReports、
 松江市の企業が島根県の助成で開発し無償公開」

        2011/11/2 ITpro
ご尽力頂いた皆様、
ありがとうございました!
正式リリースまでの道のり
2009/04
             「原点」

PXDocとの出会い

SVGとの出会い

PXDocの弱点 = GUIデザイナが無い
2009/07
 「しまね産業振興財団様の助成事業に採択」

プロトタイプ版の開発スタート

全てにおいて「ノウハウ0」
2010/07
     「同助成事業に再び採択」

大量帳票印刷

業務システム特有の機能開発
2010/10
     「0.6 Preview1をリリース」

Editorにメモリリークのバグ

バグ、バグ、バグバグバグ...
2011/01
     「0.6 Preview2をリリース」

予定外のリリース
(4月に正式版リリースを予定)

大量印刷時のメモリ消費に問題
(Generator/PXDoc)

急遽PDF対応へシフト
2011/07
    「0.6 Preview3をリリース」

PDF推奨、PXDoc非推奨へ

アーキテクチャレベルから見直し

結果として、良い方向へ
2011/10
      「0.7 正式版をリリース」

PXDocの廃止

多くの新機能
特徴
ThinReports Editor
ThinReports Editor
専用デザイナ

Windows/Mac/Linux対応

GPLv3
ThinReports Generator
ThinReports Generator
専用Rubyライブラリ(gem)

Ruby 1.8.7/1.9.2+

The MIT License
Quick Start
1. インストール
   (Editor)




詳細は Installation Guide を参照
1. インストール
   (Generator)

$ gem install thinreports
2. レイアウトを作成
3. コードを書く
# coding: utf-8

require 'thinreports'

ThinReports::Report.generate_file('ruby-papa.pdf') do
  use_layout 'ruby-papa.tlf'

  start_new_page do
    item(:answer).value('Matz!')
  end
end
出来上がり
できること
(主な機能)
複数レイアウトの混在
複数レイアウトの混在
report = ThinReports::Report.create do
  use_layout 'cover.tlf', :id => :cover
  use_layout 'page.tlf', :default => true

  start_new_page :layout => :covert

  start_new_page do
    item(:content).value(1)
  end

  start_new_page :layout => '/path/to/back_cover.tlf'
end

report.generate_file('multiple.pdf')
複数レイアウトの混在
一覧表の自動生成
一覧表の自動生成
report = ThinReports::Report.new
report.use_layout 'basic_list.tlf'

report.start_new_page

report.page.list(:basic_list) do |list|
  30.times do |t|
    list.add_row :detail => "row##{t + 1}"
  end
end

report.generate_file('basic_list.pdf')
一覧表の自動生成
外字の表示
外字の表示
ThinReports.configure do
  # *.TTE => *.TTF
  generator.pdf.eudc_fonts = '/path/to/eudc.ttf'
end

ThinReports::Report.generate_file('eudc.pdf') do
  use_layout 'eudc.tlf'

  start_new_page do
    item(:eudc).value("日本で生まれ世界が育てた言語n" +
                      " uby")
  end
end


                                 "□" = 外字
外字の表示
動的なスタイル操作
item(:rect).style(:fill_color, '#ff0000')
item(:rect).style(:border_color, 'red')
item(:rect).style(:border_width, 5)

item(:text).style(:color, '#0000ff')
item(:text).style(:bold, true)

item(:text_block).style(:align, :right)
item(:text_block).style(:valign, :center)

item(:ellipse).hide
item(:ellipse).show

# Method chain
item(:line).show.style(:border_color, 'red')
# Hash
item(:rect).styles(:fill_color   => 'red',
                   :border_color => 'blue')
仕様書の自動生成
仕様書の自動生成
その他
セキュリティ
(暗号化/パスワード/操作制限)

動的な画像埋め込み
(ローカル or URI)

         詳しくは公式サイトで
できないこと
(需要がありそうな機能の中で)
カスタムフォント

グラフ

バーコード
カスタムフォント
Helvetica

Courier New

Times Roman

IPAフォント(明朝/ゴシック)

      現時点で利用できるのは上記のみ
        (今後追加機能を対応)
グラフ
Google Chart API

Gruff等のライブラリ

          イメージブロック機能
        との組み合わせで実現は可能
+ Google Chart API
バーコード
barby

gbarcode

rghost-barcode等

          イメージブロック機能
        との組み合わせで実現は可能
+ barby
使うべき3つの理由
1. GUI Editorがある
というか、無いと無理

UIを含む全てにおいて日本語対応

マルチプラットフォーム
2. Generator is
        Pure Ruby
必要なのは、Rubyとgem達だけ

実行環境がシンプル
   構築、保守の負担減
   汎用性向上(環境を選ばない)
3. オープンソース
モンキーパッチで対応できる

開発に参加できたりもする

バグ報告、提案大歓迎

無償
今後
サポートサービス
最優先

メールによるQA

定期的なパッチの提供

リファレンスマニュアルの閲覧権限
主要タスク
(Editor)一覧表ツールの刷新

(Editor)テキストの縦書き

(Generator)自動キャッシュ

(Generator)Ruby1.9.3対応
その他
Framework Mode

メモリ消費の安定化(Generator)

ロゴの作成
※作って頂ける心優しい方募集中
拡張ライブラリ
 (妄想レベル)
thinreports-rails
Article.all.to_pdf(:layout => 'article.tlf')



    レイアウトのIDとテーブルのカラム名を同一にしておく

     to_pdf() で自動的にPDFを生成
                          (注)全て妄想の範囲内です
thinreports-scaffold

$ rails g tlf_scaffold foo.tlf


  レイアウトファイルからmodel/view/controllerを生
  成

  需要ある?(技術的には可能)
               (注)全て妄想の範囲内です
さらに
Editorは仕組み的に

「ブラウザ上で動作可能」
ThinReports Cloud
   (そう遠くない将来)
ThinReportsを支える
    OSSと技術
Editorの中
Editorの中の中
ThinReportsEditor/
  + core/ (Core, UI)
  | + assets/
  | | + icons/
  | | + application-compiled.css
  | + application.html
  | + application-compiled.js
  + ThinReportsEditor.exe (Platform)
         :


                      ThinReportsEditor.exe は起動時に
                     application.html をロードしているだけ
Qt
LGPLv2.1/GPLv3
Closure Library
 Apache License 2.0
Generatorの中
Prawn
Pure RubyなPDFジェネレータ

現在も活発に開発が進められている
余談




ThinReportsのChangelogにも取り入れる予定
Closure Tools
Google製
     JavaScript開発ツール
Closure Library

Closure Compiler

Closure Template
Closure Library
Editorを構成する
最も重要なライブラリ
  (ほぼ全てを担う)
特徴
JavaScriptフレームワーク

Googleのプロダクトで実際に利用されている
(Gmail/Maps/Docs...)
特徴
"型" の概念(with Compiler)

豊富なUIコンポーネント

テストフレームワーク

            ...などなど多数
興味のある方は以下の記事が参考に
「Closure Libraryを使うべき10の理由」
        - WebOS Goodies -
採用した理由(1)
SVG関連ライブラリが充実
採用した理由(2)
            JavaScriptのコーディングスタイルが
                   「カチッと決まる」
goog.provide('thin.Version');
goog.require('goog.string');

/**
 * @param {boolean=} opt_ignorePre
 * @return {string}
 */
thin.Version.getVersion = function(opt_ignorePre) {
   var res = [thin.Version.MAJOR, thin.Version.MINOR,
              thin.Version.TINY];
   // ...中略...
   return res.join('.');
};
採用した理由(3)
                      Compilerがスゴすぎる
/**
  * @param {string} name
  */
function hello(name) {
   alert('Hello, ' + name);
}
hello('New User');


                              コンパイル後
                       (ADVANCED_OPTIMIZATION)

alert('Hello, New User');
採用した理由(3)
        Compilerがスゴすぎる

          application-compiled.js

             コンパイル前                 コンパイル後

合計サイズ               2,000KB              360KB

ファイル数                    200                 1



        パフォーマンスも大幅に向上
最後に
ThinReportsは、
  まだまだバグも多く
   機能も足りない
 若いプロダクトです。
一緒に育てていきましょう!
というか、

一緒に育てて下さい。
  お願いします。
開発者2名

         @hidakatsuya




@minoru_maeda
手段は問いません。
 バグ報告、提案等々

お待ちしています!
ご清聴ありがとうございました

                公式サイト

       http://www.thinreports.org/

              公式facebook

 http://www.facebook.com/ThinReports.org

               公式Twitter

            @thinreports_org

        ThinReports Documenation

            Installation Guide
             Getting Started
                Examples

Más contenido relacionado

La actualidad más candente

テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoTakayuki Shimizukawa
 
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティElasticsearch
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方Yoshiyasu SAEKI
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までMasahito Zembutsu
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxShota Shinogi
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~Daisuke Morishita
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるMasatoshi Tada
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所Ryo Sasaki
 
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - 健人 井関
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)Trainocate Japan, Ltd.
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しようYasutaka Kawamoto
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使うKazuhiro Suga
 

La actualidad más candente (20)

テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
 
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
ログ+メトリック+トレースの組み合わせで構築する一元的なオブザーバビリティ
 
ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方ストリーム処理を支えるキューイングシステムの選び方
ストリーム処理を支えるキューイングシステムの選び方
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
Google Cloud で実践する SRE
Google Cloud で実践する SRE  Google Cloud で実践する SRE
Google Cloud で実践する SRE
 
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応までDocker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所DynamoDBの初心者に伝えたい初めて触るときの勘所
DynamoDBの初心者に伝えたい初めて触るときの勘所
 
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? - なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
なぜ初心者は webpackが解らないのか?- Why can’t you understand the webpack? -
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 

Similar a Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力

ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会Takayuki Shimizukawa
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてTakuji Kawata
 
Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop Daisuke Sugai
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Taku Unno
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Goyaegashi
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話shigeki_ohtsu
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますinfinite_loop
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platformToru Yamaguchi
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespacesIssei Hiraoka
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料OCHI Shuji
 

Similar a Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力 (20)

[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005[Japan Tech summit 2017] DEP 005
[Japan Tech summit 2017] DEP 005
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
 
2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山2013 Ignite UI 最新情報 in 岡山
2013 Ignite UI 最新情報 in 岡山
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
NAO/Pepper 開発環境 について
NAO/Pepper 開発環境 についてNAO/Pepper 開発環境 について
NAO/Pepper 開発環境 について
 
Intalio Cloud Workshop
Intalio Cloud Workshop Intalio Cloud Workshop
Intalio Cloud Workshop
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4Aizu.LT::Tokyo #4
Aizu.LT::Tokyo #4
 
1MB
1MB1MB
1MB
 
BBBBB
BBBBBBBBBB
BBBBB
 
Microsoft Graph API Library for Go
Microsoft Graph API Library for GoMicrosoft Graph API Library for Go
Microsoft Graph API Library for Go
 
httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話httpbis interim とhttp2.0相互接続試験の話
httpbis interim とhttp2.0相互接続試験の話
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せますゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力