SlideShare a Scribd company logo
1 of 12
CHORT
サービス構成等説明書 for このこん
システム構成(通常)
システム構成(API)
プログラムの工夫
 APIは独自のものを採用。POSTに対応。
 匿名サービスとしても個人のみで使うものとしても使える。
補足: 匿名の場合、APIは使えないし、勝手にURLを削除される可能性があるのでお
すすめしない。

 テーマ、およびプラグインによって拡張性を高くした。
 インストールはウィザード形式(現在コンソールからのみ)

 buildfileを用意するとコマンド一発なのでChefにも応用可
その他システム面でアピールしたいこと
 フロントエンド全て日本語
日本語対応のものがなかなか見当たらなかったから作った。

 オープンソース(GPLv3)
ForkとかあるとうれしいのでGPLv3にした。ソースの在処は後述

 mysql_connectは置き換えられるっぽいのでmysqli_connect採用
別にmysqlndでも良かったのだが、mysqliのほうが広く使えそうなのでこちらを使った

 Javascriptを全く使っていないのでちょっとだけ早い
ただしCSSは使っている。ちなみに標準テーマはPure。拡張を入れるとJavascript入るかも
しれない。

 URLはランダムなので同URLでも少なくとも40000通りはある。
普通に使っていればかぶることはまずない。
その他システム面でアピールしたいこと2
 短縮前のURLが80文字以上で…にカットされる
 CSRF対策のためにnonceを仕込んだ
システム設計 > 目的、仕様、動作
 目的
日本語対応のPHPでFOSSなソフト。

 仕様
PHP5+MySQLまたはそれらの類+ApacheまたはNginx

 動作
標準の短縮: shorten.phpのPOSTにURLと発行されたnonceを乗っける。

正しく短縮が完了すると、画面にURLが表示される。
API短縮: api.phpにPOSTでuser=ユーザー名とpasswd=パスワード、uri=URLと
reqtype=regを乗っける。
レスポンスにはカンマで区切った情報が含まれている。以後のAPIも同様。
システム設計 > 動作(続き)
標準の短縮URL削除: urlrem.phpのPOSTに短縮URLのハッシュと
nonceを乗っける。

API短縮URL削除: api.phpにPOSTでuser=ユーザー名、passwd=パス
ワード、hash=短縮URLのハッシュ、reqtype=remを乗っける。
標準の短縮URL確認: manage.phpにGET(引数なし)で送る。結果は
HTMLのtr内に入っている。

API短縮URL確認: api.phpにPOSTでuser=ユーザー名、passwd=パス
ワード、reqtype=lisを送る。
システム設計 > UI
 インターフェイス

インターフェイスはタイトルバー、サイドバー、メインコンテンツ
の3カラム構成にする。
タイトルバー
サイドバー

メインコンテンツ
MISC.
 将来的に実装するかもしれないもの
 CookieによるAPI認証
これは、PhoneGapとかでストレージに貯めるのが面倒くさくて、CookieでAPI通せ
たらいいじゃんってなったので。=>おそらくログイン画面の応用でできる

 APIをOAuth的なものにする
アクセス権がコントロールしやすいし、パスワードをアプリに渡さなくて済むため。
ただし、アクセス権の管理するサーバの死活監視が必須。

 短縮URLのアクセス回数のカウント
短縮URLへのアクセス回数がカウントできればいろいろ応用できるから。
MISC > ベースとなるシステムの構成
 Ubuntu 13.10 Saucy Salamander
 Nginx 1.4.3(インテルコンパイラで手動インストール)
 PHP5.5.3(標準のaptリポジトリより)
 Percona Server 5.6(Percona apt repository)
 ソフトウェアはスクラッチで開発
 サーバはConoHa
 システム設計は後述
詳しいことについて(ソースの在処)
 http://mirror.jre655.com/Chort/chort-installer

インストーラ
 http://mirror.jre655.com/Chort/latest.tar.xz

プログラム本体(Tarball)
作者: 福田拓朗(@25kei12)
作者のプロフィール: 中学生でフリーなライセンスとPHP大好きな
プログラマもどき。詳しいことについてはhttp://jre655.com/about/
を参照。

fin.

More Related Content

What's hot

LT3「Python を使ってExcel ファイルの修正」
LT3「Python を使ってExcel ファイルの修正」LT3「Python を使ってExcel ファイルの修正」
LT3「Python を使ってExcel ファイルの修正」Takeshi Akutsu
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPJunichi Yamamoto
 
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めようPHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めようYuya Takeyama
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSTomoki Hasegawa
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―shinjiigarashi
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話Hisateru Tanaka
 
PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件についてPHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について健治郎 安井
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月suno88
 
FuelPHP活用事例
FuelPHP活用事例FuelPHP活用事例
FuelPHP活用事例Yusuke Naka
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうTaiji INOUE
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由Kenichi Mukai
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界Yuuki Takezawa
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDDYuuki Takezawa
 
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバーTakeshi Furusato
 
X86opti01 nothingcosmos
X86opti01 nothingcosmosX86opti01 nothingcosmos
X86opti01 nothingcosmosnothingcosmos
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室Yusuke Ando
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-vx-pc-club
 

What's hot (20)

LT3「Python を使ってExcel ファイルの修正」
LT3「Python を使ってExcel ファイルの修正」LT3「Python を使ってExcel ファイルの修正」
LT3「Python を使ってExcel ファイルの修正」
 
Clrh 111015 wf45
Clrh 111015 wf45Clrh 111015 wf45
Clrh 111015 wf45
 
NetBeansではじめる FuelPHP
NetBeansではじめる FuelPHPNetBeansではじめる FuelPHP
NetBeansではじめる FuelPHP
 
NanoA
NanoANanoA
NanoA
 
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めようPHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
 
Flash lite概要
Flash lite概要Flash lite概要
Flash lite概要
 
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMSDrupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
Drupal 8 - モダンなアーキテクチャのPHPベースOSS CMS
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
Phpstormちょっといい話
Phpstormちょっといい話Phpstormちょっといい話
Phpstormちょっといい話
 
PHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件についてPHP buildpackでhackとphalconが動いた件について
PHP buildpackでhackとphalconが動いた件について
 
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
 
FuelPHP活用事例
FuelPHP活用事例FuelPHP活用事例
FuelPHP活用事例
 
PHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろうPHP x AWS でスケーラブルなシステムをつくろう
PHP x AWS でスケーラブルなシステムをつくろう
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
 
PHPデプロイツールの世界
PHPデプロイツールの世界PHPデプロイツールの世界
PHPデプロイツールの世界
 
phpspecで始めるBDD
phpspecで始めるBDDphpspecで始めるBDD
phpspecで始めるBDD
 
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー
第3回 JAWS-UG Okayama 10分でつくる!?ライブストリーミングサーバー
 
X86opti01 nothingcosmos
X86opti01 nothingcosmosX86opti01 nothingcosmos
X86opti01 nothingcosmos
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
 
活動報告9 laravel5入門-
活動報告9  laravel5入門-活動報告9  laravel5入門-
活動報告9 laravel5入門-
 

Similar to サービス構成説明書@このこん

クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
デプロイに苦労した話
デプロイに苦労した話デプロイに苦労した話
デプロイに苦労した話tetuwo181
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践Shumpei Shiraishi
 
あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)Hiroyuki Ishiyama
 
くまあず平日夜の勉強会#4
くまあず平日夜の勉強会#4くまあず平日夜の勉強会#4
くまあず平日夜の勉強会#4Noriaki Sakata
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform拓将 平林
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチKazuya Sugimoto
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginIkuko Kanada
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginFumito Mizuno
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Shingo Kitayama
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanShigeru Hanada
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Langur
 
Team Foundation Server入門
Team Foundation Server入門Team Foundation Server入門
Team Foundation Server入門Akihiro Nakajima
 

Similar to サービス構成説明書@このこん (20)

クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
PHP With Windows binary
PHP With Windows binaryPHP With Windows binary
PHP With Windows binary
 
デプロイに苦労した話
デプロイに苦労した話デプロイに苦労した話
デプロイに苦労した話
 
オフラインファーストの思想と実践
オフラインファーストの思想と実践オフラインファーストの思想と実践
オフラインファーストの思想と実践
 
あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
2009 PHP初心者
2009 PHP初心者2009 PHP初心者
2009 PHP初心者
 
くまあず平日夜の勉強会#4
くまあず平日夜の勉強会#4くまあず平日夜の勉強会#4
くまあず平日夜の勉強会#4
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
Lt 20120901
Lt 20120901Lt 20120901
Lt 20120901
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
#decode19 #MW04 誰のための API? Azure デベロッパーにもエンド ユーザーにも嬉しいAPI エコシステム活用アプローチ
 
CMDBあれこれ
CMDBあれこれCMDBあれこれ
CMDBあれこれ
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 Japan
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
 
Team Foundation Server入門
Team Foundation Server入門Team Foundation Server入門
Team Foundation Server入門
 

サービス構成説明書@このこん