SlideShare a Scribd company logo
1 of 17
同人スケジューリングサービス
作ってみた
ゆるふわRuby勉強会Chofu.rb(おためし版)
アジェンダ
● 発表者紹介
● サービス紹介
● 工夫/苦労した箇所
● Sinatraの感想
● これからサービスを作る貴方に
あんた誰?
うのはな透(@unohanaT)
● (株)MTMシステムズ 開発部
● (多分)WEBエンジニア
o ruby, Java, C# etc.
● 社畜から抜け出したくて今年5月転職
● 副業は同人作家
何を作った?
同人スケジューリングサービス
● 作品制作スケジュールを見積もり・立案できる
● 毎日の進捗を入力することで、遅れ/進みを把握でき
る
● 作品制作後、制作ペースなどの実績を把握できる
新刊を落とさなくなる!
運用
サービス構成
JQuery
開発
ActiveRecord
Twitter/UserLoca
l
Batch
工夫/苦労した箇所
Ajax with jsRender
jsRender: javascriptのレンダリングライブラリ
1. 必要なデータをAjaxにてjsonで受け取る
2. テンプレートをAjaxにてtxtで受け取る
3. テンプレート&データをjsRenderでレンダ
リング● データ転送量の削減が見込める
● サーバ側の負荷(レンダリング)を軽減できる
● erb一本よりは学習コストが高いのが難点か
Twitterへの通知
下記ページを参照
http://qiita.com/enmtknt/items/b1ff3bcd5d3ef8819845
● 公式アカウントからtweetをするだけなら簡単
(TwitterAppsで自分のアカウントのアクセストークン
が取得できる)
● API制限に引っかからないように10分毎に5件送信する
ように設定している(最大41.6post/Hに対し、
30post/H)
● ちなみに当初は10分毎に1件だったが、いつの間にか通
知件数が増えすぎて対応できなくなっていた
制作ペースの計算
「今日は12時間作業して、下描き2P、ペン入
れ3P作業したぞ!」
下描き・ペン入れにそれぞれ何時間掛け
た?
● 1日の進捗では求められないけど、2日分進捗があ
れば連立方程式で解ける!
● サンプルが偏らないように複数の連立方程式を立て
る!
● ruby的にはMatrix/Vectorを利用(x = A-1b の要領)
アクセスログの送信
当初の想定:クライアント側でAjax通信
改案:DBにアクセス情報溜めてバッチで通信
● クライアントにパラメータが送られない
● リアルタイム性は落ちる(10分ごと)が、影響ない
● クロスオリジンに引っかかって通信不可能!
● パラメータがユーザに見えるので好ましくない
Sinatraの感想
とにかく軽い!
● 直感的ですぐ始められる
● Railsよりブラックボック
スが少ないので、変なと
ころで詰まらない
● ActiveRecordとよく馴染
む
「習うより慣れろ」を体現した
ただし不満点もある
● rbファイルがすぐ肥大化する(少数のファイ
ルに詰め込みがち)
● beforeフィルタの機能がやや弱い
● Railsほどライブラリが充実していない
規模が大きくなって「Railsに乗り換えようかな?」と思っ
ても時すでに遅し……
Sinatraで一本作って雰囲気掴んだら、次はPadrinoがいい
かも
これからサービスを作る貴方に
知らなきゃならないことは多いぞ!
● HTTP(e.g. GET/POSTの違いは? RESTfulとは?)
● Javascript(e.g. ダイアログはどうやって出す? モ
ーダル/モードレスの違いは?)
● Ajax(e.g. どんな時に使うべき?)
● DB(e.g. どんなテーブル構成? パフォーマンス
は?)
● セッション(e.g. 何を突っ込む? 複数画面対策
は?)
● セキュリティ(e.g. SQLインジェクション対策は万
でも知らなくても案外なんとかなるよ
● 個人で趣味サービスを立ち上げる程度なら、
あまり身構えなくてもよい
o 隗より始めよ。習うより慣れろ
o まずはこれくらいシンプルなのを
→ vivit_jcになれるボタン
o 知識が要求されるのは仕事になってから
● たのしくプログラミングしましょう!!
おわり

More Related Content

What's hot

p5.js について
p5.js についてp5.js について
p5.js についてreona396
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjugsk44_
 
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話Masataka Kono
 
20130202 fe勉強会 canvas
20130202 fe勉強会 canvas20130202 fe勉強会 canvas
20130202 fe勉強会 canvasKeisuke Aizawa
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?Toshio Ehara
 
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Y Watanabe
 
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気Sea Mountain
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたSatoshi Takami
 
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュースcom044
 
ぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつAtsushi Harada
 
フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!Takuya Sato
 
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュースcom044
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことHirata Tomoko
 
Gm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよGm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよKiminori Kato
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + NashornTakuya Ueda
 
ぼくたちのじゅたくかいはつ(と品質の話)
ぼくたちのじゅたくかいはつ(と品質の話)ぼくたちのじゅたくかいはつ(と品質の話)
ぼくたちのじゅたくかいはつ(と品質の話)Atsushi Harada
 
20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へSEED310
 

What's hot (20)

p5.js について
p5.js についてp5.js について
p5.js について
 
2013 08-19 jjug
2013 08-19 jjug2013 08-19 jjug
2013 08-19 jjug
 
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
Mysqlを4.0から5.0を経由して5.6へバージョンアップした話
 
20130202 fe勉強会 canvas
20130202 fe勉強会 canvas20130202 fe勉強会 canvas
20130202 fe勉強会 canvas
 
Meguro es7
Meguro es7Meguro es7
Meguro es7
 
Alternative chef
Alternative chefAlternative chef
Alternative chef
 
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
 
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
Selenium再入門-W3C勧告とページオブジェクトパターンと私-201707webエンジニア勉強会#2神田
 
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気
 
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみたJavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
 
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース第2回UE4勉強会 in 大阪 -  201709 ue4界隈ニュース
第2回UE4勉強会 in 大阪 - 201709 ue4界隈ニュース
 
ぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつぼくたちのじゅたくかいはつ
ぼくたちのじゅたくかいはつ
 
フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!
 
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース第3回ue4勉強会 in 大阪   201711 ue4界隈ニュース
第3回ue4勉強会 in 大阪 201711 ue4界隈ニュース
 
エンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったことエンジニアが Webを学ぶために やっててよかったこと
エンジニアが Webを学ぶために やっててよかったこと
 
Gm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよGm,またつまらないものを作ったってよ
Gm,またつまらないものを作ったってよ
 
GopherJS + Nashorn
GopherJS + NashornGopherJS + Nashorn
GopherJS + Nashorn
 
ぼくたちのじゅたくかいはつ(と品質の話)
ぼくたちのじゅたくかいはつ(と品質の話)ぼくたちのじゅたくかいはつ(と品質の話)
ぼくたちのじゅたくかいはつ(と品質の話)
 
Walking front end
Walking front endWalking front end
Walking front end
 
20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ20150717 これからプログラミングを勉強する人へ
20150717 これからプログラミングを勉強する人へ
 

Viewers also liked

2017 Adroit's Training Brochure(imp)
2017 Adroit's Training Brochure(imp)2017 Adroit's Training Brochure(imp)
2017 Adroit's Training Brochure(imp)Mandeep K Kochhar
 
Komplikasi efusi pleura
Komplikasi efusi pleuraKomplikasi efusi pleura
Komplikasi efusi pleuraFian Nisa
 
The growth of impact damage - thesis
The growth of impact damage - thesisThe growth of impact damage - thesis
The growth of impact damage - thesisHerzl Chai
 
BTEK technology interpretation centre- Case Study
BTEK technology interpretation centre- Case StudyBTEK technology interpretation centre- Case Study
BTEK technology interpretation centre- Case StudyRajat Rana
 
Architectural Conservation- Hampi World Heritage Site
Architectural Conservation- Hampi World Heritage SiteArchitectural Conservation- Hampi World Heritage Site
Architectural Conservation- Hampi World Heritage SiteRajat Rana
 
Summary 130912020352-phpapp02-151102145633-lva1-app6891
Summary 130912020352-phpapp02-151102145633-lva1-app6891Summary 130912020352-phpapp02-151102145633-lva1-app6891
Summary 130912020352-phpapp02-151102145633-lva1-app6891charity nkullie
 

Viewers also liked (12)

2017 Adroit's Training Brochure(imp)
2017 Adroit's Training Brochure(imp)2017 Adroit's Training Brochure(imp)
2017 Adroit's Training Brochure(imp)
 
Television reviews
Television reviewsTelevision reviews
Television reviews
 
XON Fleyer
XON FleyerXON Fleyer
XON Fleyer
 
Komplikasi efusi pleura
Komplikasi efusi pleuraKomplikasi efusi pleura
Komplikasi efusi pleura
 
Resume_Jithin E.R
Resume_Jithin E.RResume_Jithin E.R
Resume_Jithin E.R
 
CV-Mardianto
CV-MardiantoCV-Mardianto
CV-Mardianto
 
2017 recruitment brochure
2017 recruitment brochure 2017 recruitment brochure
2017 recruitment brochure
 
The growth of impact damage - thesis
The growth of impact damage - thesisThe growth of impact damage - thesis
The growth of impact damage - thesis
 
BTEK technology interpretation centre- Case Study
BTEK technology interpretation centre- Case StudyBTEK technology interpretation centre- Case Study
BTEK technology interpretation centre- Case Study
 
Architectural Conservation- Hampi World Heritage Site
Architectural Conservation- Hampi World Heritage SiteArchitectural Conservation- Hampi World Heritage Site
Architectural Conservation- Hampi World Heritage Site
 
Summary 130912020352-phpapp02-151102145633-lva1-app6891
Summary 130912020352-phpapp02-151102145633-lva1-app6891Summary 130912020352-phpapp02-151102145633-lva1-app6891
Summary 130912020352-phpapp02-151102145633-lva1-app6891
 
CV-Mardianto
CV-MardiantoCV-Mardianto
CV-Mardianto
 

Similar to 同人スケジューリングサービス作ってみた

アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱Koichi ITO
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前Hiroshi Yamato
 
connpass特徴と開発の流れ
connpass特徴と開発の流れconnpass特徴と開発の流れ
connpass特徴と開発の流れIkeda Yosuke
 
How to develop a huge Single Page Application
How to develop a huge Single Page ApplicationHow to develop a huge Single Page Application
How to develop a huge Single Page ApplicationNaoki Yamada
 
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)学 松崎
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the futureOperation Lab, LLC.
 
退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話Tadashi Nemoto
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。Akihiro Kuwano
 
20200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その220200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その2Hikaru Tanaka
 
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみるTeam Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみるYou&I
 
Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Takashi Honda
 
俺 と ご褒美 Bot
俺 と ご褒美 Bot俺 と ご褒美 Bot
俺 と ご褒美 BotMasayuki KaToH
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみようTakuya Kawabe
 
Web入稿自動組版の過去・現在・未来
Web入稿自動組版の過去・現在・未来Web入稿自動組版の過去・現在・未来
Web入稿自動組版の過去・現在・未来Masataka Kawahara
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Takashi Honda
 
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善Developers Summit
 
ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治Drecom Co., Ltd.
 
Gcpug begginers #1LT startup scriptとshutdown script
Gcpug begginers #1LT startup scriptとshutdown scriptGcpug begginers #1LT startup scriptとshutdown script
Gcpug begginers #1LT startup scriptとshutdown scripttsukasa tamaru
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』Ryo RKTM
 
はじめてがアジャイル
はじめてがアジャイルはじめてがアジャイル
はじめてがアジャイルKenichi Takahashi
 

Similar to 同人スケジューリングサービス作ってみた (20)

アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱アジャイルソフトウェア開発の道具箱
アジャイルソフトウェア開発の道具箱
 
MTプラグイン入門以前
MTプラグイン入門以前MTプラグイン入門以前
MTプラグイン入門以前
 
connpass特徴と開発の流れ
connpass特徴と開発の流れconnpass特徴と開発の流れ
connpass特徴と開発の流れ
 
How to develop a huge Single Page Application
How to develop a huge Single Page ApplicationHow to develop a huge Single Page Application
How to develop a huge Single Page Application
 
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
Spring Boot + Doma + AngularJSで作るERP (LINE Fukuoka Meetup版)
 
2014-01-28 Operation in the future
2014-01-28 Operation in the future2014-01-28 Operation in the future
2014-01-28 Operation in the future
 
退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話
 
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
オンプレエンジニアがクラウドエンジニアを夢見て。じっと手を見る。
 
20200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その220200817 プログラミングの基礎 その2
20200817 プログラミングの基礎 その2
 
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみるTeam Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみる
 
Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割Infrastrucure as a CodeにおけるJenkinsの役割
Infrastrucure as a CodeにおけるJenkinsの役割
 
俺 と ご褒美 Bot
俺 と ご褒美 Bot俺 と ご褒美 Bot
俺 と ご褒美 Bot
 
20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう20130302 わんくま勉強会大阪 tfsを使ってみよう
20130302 わんくま勉強会大阪 tfsを使ってみよう
 
Web入稿自動組版の過去・現在・未来
Web入稿自動組版の過去・現在・未来Web入稿自動組版の過去・現在・未来
Web入稿自動組版の過去・現在・未来
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善
 
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
 
ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治ドリコムサマージョブ報告 by 佐々木 誠治
ドリコムサマージョブ報告 by 佐々木 誠治
 
Gcpug begginers #1LT startup scriptとshutdown script
Gcpug begginers #1LT startup scriptとshutdown scriptGcpug begginers #1LT startup scriptとshutdown script
Gcpug begginers #1LT startup scriptとshutdown script
 
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
 
はじめてがアジャイル
はじめてがアジャイルはじめてがアジャイル
はじめてがアジャイル
 

同人スケジューリングサービス作ってみた