SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
GDK48総選挙の裏側



2011年11月22日火曜日
自己紹介



            •運営レンジャー イエロー



2011年11月22日火曜日
運営レンジャー




2011年11月22日火曜日
GDK48総選挙アプリ



2011年11月22日火曜日
仕様

         •#gdk48かつGistのURLがあるTweetを集める
         •集めたGistを一覧する
         •Twitter認証したユーザがGistに投票できる


2011年11月22日火曜日
Tweetを集める




2011年11月22日火曜日
一覧する




2011年11月22日火曜日
投票する
  Twitterアカウントで
             ログイン



      ログインすると
          投票できる


2011年11月22日火曜日
アーキテクチャ


            •Grails 1.3.7
            •Amazon EC2


2011年11月22日火曜日
使ったプラグイン

  $ grails list-plugins -installed

  Plug-ins you currently have installed are listed below:
  -------------------------------------------------------------

  blueprint                 1.0.2     --   Blueprint CSS framework
  hibernate                 1.3.7     --   Hibernate for Grails
  jquery                    1.6.1.1   --   JQuery for Grails
  quartz                    0.4.2     --   This plugin adds Quartz job scheduling
  resources                 1.1.1     --   Resources
  spring-security-core      1.2.4     --   Spring Security Core Plugin
  spring-security-twitter   0.3.4     --   Twitter authentication for Spring
  tomcat                    1.3.7     --   Apache Tomcat plugin for Grails




2011年11月22日火曜日
ボリューム
            $ grails stats

                 +----------------------+-------+-------+
                 | Name                 | Files | LOC |
                 +----------------------+-------+-------+
                 | Controllers          |     5 |   141 |
                 | Domain Classes       |     6 |   113 |
                 | Jobs                 |     1 |    44 |
                 | Unit Tests           |     5 |   102 |
                 +----------------------+-------+-------+
                 | Totals               |    17 |   400 |
                 +----------------------+-------+-------+




2011年11月22日火曜日
ツイートを取ってくる

            •Quartzプラグインを使って1分おきに
                 Twitter検索 (q=#gdk48)

            •検索結果のツイートにGistのURLが含まれ
                 るか?

                 •短縮URLの問題

2011年11月22日火曜日
短縮URLを展開


            •java.net.URL使ってヘッダだけ取得
            •Locationヘッダの値を見る
            •GistへのURLか? さらに短縮URLか?


2011年11月22日火曜日
/**
   * URLからGistの番号を取得。
   * URLがGistのURLじゃなかったらnullを返す。
   */
 private Long getGistNo(String url, tryCount = 0) {
      if (tryCount >= MAX_TRY) {
          return null
      }
      def m = url =~ GIST_URL
      if (m) {
          return m[0][1].toLong()
      } else {
          def conn = new URL(url).openConnection()
          conn.followRedirects = false
          def location = conn.getHeaderField('Location')
          return location ? getGistNo(location, ++tryCount) : null
      }
 }


2011年11月22日火曜日
Twitter認証
         $   grails   install-plugin spring-security-core
         $   grails   s2-quickstart
         $   grails   install-plugin spring-security-twitter
         $   grails   s2-init-twitter

                        コマンド4つでほぼ完了!


        <twitterAuth:button/>




2011年11月22日火曜日
Gist連携


            •Gistコード表示
            •Description表示


2011年11月22日火曜日
Gistコード表示




2011年11月22日火曜日
Gistコード表示




2011年11月22日火曜日
scriptタグだけ


<script src="https://gist.github.com/1197737.js"></script>




2011年11月22日火曜日
Description表示




                 scriptタグ埋め込みでは表示されない!



2011年11月22日火曜日
Description表示




                 scriptタグ埋め込みでは表示されない!



2011年11月22日火曜日
Gist API v3
            •http://developer.github.com/v3/
            •Gistの情報を取得できるAPI
            $ curl https://api.github.com/gists/1341145
            {
              "description": "クソゲーによる自己紹介(by uehaj)",
              "created_at": "2011-11-05T05:26:07Z",
              "forks": [

                 ],
                 ...
            }

2011年11月22日火曜日
これで勝つる


            •Gist APIを使ってDescriptionをDBに登録
                 しておけばいい。




2011年11月22日火曜日
https://api.github.com/robots.txt

                  User-agent: Googlebot
                  Disallow: /tarball/
                  Disallow: /zipball/
                  ...
                  User-agent: msnbot
                  Disallow: /tarball/
                  Disallow: /zipball/
                  ...
                  User-agent: *
                  Disallow: /


2011年11月22日火曜日
Robots Exclusion Standard
    ウェブサイトの所有者がボットに対して指示したい場合、そのウェブサイトの階層のルートに robots.txt というテ
    キストファイルを置く(例えば、www.example.com/robots.txt)。サイト側の指示に従う選択をしているボットは、
    まずこのファイルにアクセスし、その指示を読み込んで、それに従ってそのウェブサイトの他のファイルの読み込
    みを行う。このファイルがない場合、ボットはそのサイトの所有者が特に何も指示していないと判断する。


    robots.txt はボットに対して特定のファイルやディレク
    トリを検索しないよう指示する。これは例えば、検索エンジンからプライバシー
    に関わる情報を守る場合、指定したファイルやディレクトリの内容がサイトの分類をする際に誤解を与える虞があ
    る場合、特定のアプリケーションのみが読み込むことを意図したデータの場合などがある。

    下位ドメインがあるウェブサイトでは、各下位ドメインごとに robots.txt ファイルが必要である。example.com に
    robots.txt があっても、a.example.com になければ、example.com の robots.txt の内容は a.example.com には適用されな
    い。


                      http://ja.wikipedia.org/wiki/Robots_Exclusion_Standard



2011年11月22日火曜日
Gist API + JSONP


            •JSONPでクライアントからゴニョゴニョ
                 すれば合法




2011年11月22日火曜日
// HTML
 <span id="desc-1197737" class="description"></span>


 // JavaScript
 $(function() {
    $('.description').each(function() {
       var span = $(this)
       var gistNo = span.attr('id').match(/desc-(d+)/)[1]
       $.getJSON(
         'https://api.github.com/gists/'+gistNo+'?callback=?',
         function(resp) {
           var description = resp.data.description || '<No description>'
           if (resp.data.user) {
             description += ' (by '+resp.data.user.login+')'
           }
           span.text(description)
         }
       )
    })
 })


2011年11月22日火曜日
2011年11月22日火曜日
感想
            •CSSに時間がかかった。
             •あのデザインでも自分の中では頑張った方
            •困ったときのEC2
             •PaaSよりIaaSの方が素直
            •Grailsプラグインはチート杉

2011年11月22日火曜日
参考情報
     •関谷さんの企画書
      •http://www.slideshare.net/kazuchika/gdk48
     •GDK48
      •http://bit.ly/gdk48
     •GDK48ソースコード
      •http://git.io/gdk48
2011年11月22日火曜日

Weitere ähnliche Inhalte

Ähnlich wie GDK48総選挙の裏側

Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまでlestrrat
 
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれKazumi IWANAGA
 
Riot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディングRiot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディングTsutomu Kawamura
 
Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514junichi anno
 
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdfAkihiro Suda
 
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析QlikPresalesJapan
 
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127Shotaro Suzuki
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Shinsuke Sugaya
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなすonozaty
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみたKatsutoshi Nagaoka
 
Metahub for github
Metahub for githubMetahub for github
Metahub for githubSuguru Oho
 
分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218Takashi Okamoto
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境Katsutoshi Nagaoka
 
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードKazuhiro Hara
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi昌桓 李
 
【Pycon2012】unittest嫌いがunitestをtesting
【Pycon2012】unittest嫌いがunitestをtesting【Pycon2012】unittest嫌いがunitestをtesting
【Pycon2012】unittest嫌いがunitestをtestingido_ojos_jp
 
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOpsGitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOpsKazumi IWANAGA
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイKazuhiro Hara
 

Ähnlich wie GDK48総選挙の裏側 (20)

Heroku Postgres
Heroku PostgresHeroku Postgres
Heroku Postgres
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
Google container builderと友だちになるまで
Google container builderと友だちになるまでGoogle container builderと友だちになるまで
Google container builderと友だちになるまで
 
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ
地味だけど劇的に便利になるGitHubリポジトリ設定あれこれ
 
Riot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディングRiot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディング
 
Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514Power shell の基本操作と処理の自動化 v2_20120514
Power shell の基本操作と処理の自動化 v2_20120514
 
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
 
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析
TECHTALK 20200825 RやPythonとの連携で実現するQlik Senseの高度な分析
 
Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127Elastic circle ci-co-webinar-20210127
Elastic circle ci-co-webinar-20210127
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
 
View customize pluginを使いこなす
View customize pluginを使いこなすView customize pluginを使いこなす
View customize pluginを使いこなす
 
GKEで半年運用してみた
GKEで半年運用してみたGKEで半年運用してみた
GKEで半年運用してみた
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 
分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
 
Play framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
【Pycon2012】unittest嫌いがunitestをtesting
【Pycon2012】unittest嫌いがunitestをtesting【Pycon2012】unittest嫌いがunitestをtesting
【Pycon2012】unittest嫌いがunitestをtesting
 
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOpsGitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps
GitHub と Azure でアプリケーションとインフラストラクチャの守りを固めるDevSecOps
 
Playbay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
 

Mehr von Kiyotaka Oku

Osaka Venture Meetup #3
Osaka Venture Meetup #3Osaka Venture Meetup #3
Osaka Venture Meetup #3Kiyotaka Oku
 
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱Kiyotaka Oku
 
BaseScriptについて
BaseScriptについてBaseScriptについて
BaseScriptについてKiyotaka Oku
 
ミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考えるミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考えるKiyotaka Oku
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memoKiyotaka Oku
 
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介Kiyotaka Oku
 
Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜Kiyotaka Oku
 
日本Grails/Groovyユーザーグループ
日本Grails/Groovyユーザーグループ日本Grails/Groovyユーザーグループ
日本Grails/GroovyユーザーグループKiyotaka Oku
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 SpringKiyotaka Oku
 
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Kiyotaka Oku
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and GroovyKiyotaka Oku
 
とある断片の超動的言語
とある断片の超動的言語とある断片の超動的言語
とある断片の超動的言語Kiyotaka Oku
 

Mehr von Kiyotaka Oku (20)

Osaka Venture Meetup #3
Osaka Venture Meetup #3Osaka Venture Meetup #3
Osaka Venture Meetup #3
 
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
巨大不明ビルドの継続的統合を目的とするビルドパイプラインを主軸とした作戦要綱
 
BaseScriptについて
BaseScriptについてBaseScriptについて
BaseScriptについて
 
javafx-mini4wd
javafx-mini4wdjavafx-mini4wd
javafx-mini4wd
 
ミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考えるミニ四駆ジャパンカップで勝つ方法を考える
ミニ四駆ジャパンカップで勝つ方法を考える
 
Jenkins plugin memo
Jenkins plugin memoJenkins plugin memo
Jenkins plugin memo
 
Spockの基礎
Spockの基礎Spockの基礎
Spockの基礎
 
JUC2012
JUC2012JUC2012
JUC2012
 
Jenkins入門
Jenkins入門Jenkins入門
Jenkins入門
 
Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介Grails/Groovyによる開発事例紹介
Grails/Groovyによる開発事例紹介
 
Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜Griffon不定期便〜G*ワークショップ編〜
Griffon不定期便〜G*ワークショップ編〜
 
日本Grails/Groovyユーザーグループ
日本Grails/Groovyユーザーグループ日本Grails/Groovyユーザーグループ
日本Grails/Groovyユーザーグループ
 
GroovyConsole2
GroovyConsole2GroovyConsole2
GroovyConsole2
 
GroovyConsole
GroovyConsoleGroovyConsole
GroovyConsole
 
JJUG CCC 2011 Spring
JJUG CCC 2011 SpringJJUG CCC 2011 Spring
JJUG CCC 2011 Spring
 
Jenkinsプラグインの作り方
Jenkinsプラグインの作り方Jenkinsプラグインの作り方
Jenkinsプラグインの作り方
 
Devsumi Openjam
Devsumi OpenjamDevsumi Openjam
Devsumi Openjam
 
Jenkins and Groovy
Jenkins and GroovyJenkins and Groovy
Jenkins and Groovy
 
とある断片の超動的言語
とある断片の超動的言語とある断片の超動的言語
とある断片の超動的言語
 
Mote Hudson
Mote HudsonMote Hudson
Mote Hudson
 

Kürzlich hochgeladen

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介: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 UnderstandingToru Tamaki
 
論文紹介: 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 Gamesatsushi061452
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: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...Toru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Kürzlich hochgeladen (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介: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
 
論文紹介: 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
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: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...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

GDK48総選挙の裏側

  • 2. 自己紹介 •運営レンジャー イエロー 2011年11月22日火曜日
  • 5. 仕様 •#gdk48かつGistのURLがあるTweetを集める •集めたGistを一覧する •Twitter認証したユーザがGistに投票できる 2011年11月22日火曜日
  • 8. 投票する Twitterアカウントで ログイン ログインすると 投票できる 2011年11月22日火曜日
  • 9. アーキテクチャ •Grails 1.3.7 •Amazon EC2 2011年11月22日火曜日
  • 10. 使ったプラグイン $ grails list-plugins -installed Plug-ins you currently have installed are listed below: ------------------------------------------------------------- blueprint 1.0.2 -- Blueprint CSS framework hibernate 1.3.7 -- Hibernate for Grails jquery 1.6.1.1 -- JQuery for Grails quartz 0.4.2 -- This plugin adds Quartz job scheduling resources 1.1.1 -- Resources spring-security-core 1.2.4 -- Spring Security Core Plugin spring-security-twitter 0.3.4 -- Twitter authentication for Spring tomcat 1.3.7 -- Apache Tomcat plugin for Grails 2011年11月22日火曜日
  • 11. ボリューム $ grails stats +----------------------+-------+-------+ | Name | Files | LOC | +----------------------+-------+-------+ | Controllers | 5 | 141 | | Domain Classes | 6 | 113 | | Jobs | 1 | 44 | | Unit Tests | 5 | 102 | +----------------------+-------+-------+ | Totals | 17 | 400 | +----------------------+-------+-------+ 2011年11月22日火曜日
  • 12. ツイートを取ってくる •Quartzプラグインを使って1分おきに Twitter検索 (q=#gdk48) •検索結果のツイートにGistのURLが含まれ るか? •短縮URLの問題 2011年11月22日火曜日
  • 13. 短縮URLを展開 •java.net.URL使ってヘッダだけ取得 •Locationヘッダの値を見る •GistへのURLか? さらに短縮URLか? 2011年11月22日火曜日
  • 14. /** * URLからGistの番号を取得。 * URLがGistのURLじゃなかったらnullを返す。 */ private Long getGistNo(String url, tryCount = 0) { if (tryCount >= MAX_TRY) { return null } def m = url =~ GIST_URL if (m) { return m[0][1].toLong() } else { def conn = new URL(url).openConnection() conn.followRedirects = false def location = conn.getHeaderField('Location') return location ? getGistNo(location, ++tryCount) : null } } 2011年11月22日火曜日
  • 15. Twitter認証 $ grails install-plugin spring-security-core $ grails s2-quickstart $ grails install-plugin spring-security-twitter $ grails s2-init-twitter コマンド4つでほぼ完了! <twitterAuth:button/> 2011年11月22日火曜日
  • 16. Gist連携 •Gistコード表示 •Description表示 2011年11月22日火曜日
  • 20. Description表示 scriptタグ埋め込みでは表示されない! 2011年11月22日火曜日
  • 21. Description表示 scriptタグ埋め込みでは表示されない! 2011年11月22日火曜日
  • 22. Gist API v3 •http://developer.github.com/v3/ •Gistの情報を取得できるAPI $ curl https://api.github.com/gists/1341145 { "description": "クソゲーによる自己紹介(by uehaj)", "created_at": "2011-11-05T05:26:07Z", "forks": [ ], ... } 2011年11月22日火曜日
  • 23. これで勝つる •Gist APIを使ってDescriptionをDBに登録 しておけばいい。 2011年11月22日火曜日
  • 24. https://api.github.com/robots.txt User-agent: Googlebot Disallow: /tarball/ Disallow: /zipball/ ... User-agent: msnbot Disallow: /tarball/ Disallow: /zipball/ ... User-agent: * Disallow: / 2011年11月22日火曜日
  • 25. Robots Exclusion Standard ウェブサイトの所有者がボットに対して指示したい場合、そのウェブサイトの階層のルートに robots.txt というテ キストファイルを置く(例えば、www.example.com/robots.txt)。サイト側の指示に従う選択をしているボットは、 まずこのファイルにアクセスし、その指示を読み込んで、それに従ってそのウェブサイトの他のファイルの読み込 みを行う。このファイルがない場合、ボットはそのサイトの所有者が特に何も指示していないと判断する。 robots.txt はボットに対して特定のファイルやディレク トリを検索しないよう指示する。これは例えば、検索エンジンからプライバシー に関わる情報を守る場合、指定したファイルやディレクトリの内容がサイトの分類をする際に誤解を与える虞があ る場合、特定のアプリケーションのみが読み込むことを意図したデータの場合などがある。 下位ドメインがあるウェブサイトでは、各下位ドメインごとに robots.txt ファイルが必要である。example.com に robots.txt があっても、a.example.com になければ、example.com の robots.txt の内容は a.example.com には適用されな い。 http://ja.wikipedia.org/wiki/Robots_Exclusion_Standard 2011年11月22日火曜日
  • 26. Gist API + JSONP •JSONPでクライアントからゴニョゴニョ すれば合法 2011年11月22日火曜日
  • 27. // HTML <span id="desc-1197737" class="description"></span> // JavaScript $(function() { $('.description').each(function() { var span = $(this) var gistNo = span.attr('id').match(/desc-(d+)/)[1] $.getJSON( 'https://api.github.com/gists/'+gistNo+'?callback=?', function(resp) { var description = resp.data.description || '<No description>' if (resp.data.user) { description += ' (by '+resp.data.user.login+')' } span.text(description) } ) }) }) 2011年11月22日火曜日
  • 29. 感想 •CSSに時間がかかった。 •あのデザインでも自分の中では頑張った方 •困ったときのEC2 •PaaSよりIaaSの方が素直 •Grailsプラグインはチート杉 2011年11月22日火曜日
  • 30. 参考情報 •関谷さんの企画書 •http://www.slideshare.net/kazuchika/gdk48 •GDK48 •http://bit.ly/gdk48 •GDK48ソースコード •http://git.io/gdk48 2011年11月22日火曜日