Soumettre la recherche
Mettre en ligne
プログラム初心者がWebサービスをリリースして運営するまで
•
12 j'aime
•
11,166 vues
T
Tomoaki Iwasaki
Suivre
JJUG CCC 2015 Fall m3
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 77
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
Satoshi Takami
2013 08-19 jjug
2013 08-19 jjug
sk44_
スキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吾
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
Toshio Ehara
初学者にJavaScriptを教えてみた
初学者にJavaScriptを教えてみた
彰 村地
WordCamp Tokyo 2018 by ocws
WordCamp Tokyo 2018 by ocws
kouki okuda
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
Masahiko Hashimoto
20130622_android横須賀_LT
20130622_android横須賀_LT
kei aran
Recommandé
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
JavaFXとRoboVMを使ってiOS上で動くアプリを試してみた
Satoshi Takami
2013 08-19 jjug
2013 08-19 jjug
sk44_
スキトラ Spring + mybatis
スキトラ Spring + mybatis
小川 昌吾
iPhoneアプリを Javaで書くよ?
iPhoneアプリを Javaで書くよ?
Toshio Ehara
初学者にJavaScriptを教えてみた
初学者にJavaScriptを教えてみた
彰 村地
WordCamp Tokyo 2018 by ocws
WordCamp Tokyo 2018 by ocws
kouki okuda
C言語なWebSocketの遊び方。
C言語なWebSocketの遊び方。
Masahiko Hashimoto
20130622_android横須賀_LT
20130622_android横須賀_LT
kei aran
TypeScript And ALM
TypeScript And ALM
Kazushi Kamegawa
WordPress とコミュニティについて
WordPress とコミュニティについて
Yasuhiro Nozue
WordPressをCMSとして利用するために便利なWP SiteManagerについて
WordPressをCMSとして利用するために便利なWP SiteManagerについて
Tsuyoshi.
超初心者でもできた!AzureMobileService JSバージョン
超初心者でもできた!AzureMobileService JSバージョン
Yuriko Kamimori
ブログによる情報発信で起こった3つの変化
ブログによる情報発信で起こった3つの変化
Shogo Shirai
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
WheetTweet
XRにおけるプロトタイピングについて
XRにおけるプロトタイピングについて
WheetTweet
PWA A Go-Go !! @ABC2018A 20181013
PWA A Go-Go !! @ABC2018A 20181013
Ryu Shindo
Spring Boot Introduction
Spring Boot Introduction
chibochibo
オープンソースによるイノベーションの継続
オープンソースによるイノベーションの継続
Takayuki Miyauchi
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
irof N
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
khisano
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
SORACOM,INC
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
yy yank
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
hishidama
Real world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.com
Mathieu Dumoulin
デバッガのしくみ(JDI)を学んでみよう
デバッガのしくみ(JDI)を学んでみよう
fukai_yas
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
Masatoshi Tada
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Takakiyo Tanaka
Contenu connexe
Tendances
TypeScript And ALM
TypeScript And ALM
Kazushi Kamegawa
WordPress とコミュニティについて
WordPress とコミュニティについて
Yasuhiro Nozue
WordPressをCMSとして利用するために便利なWP SiteManagerについて
WordPressをCMSとして利用するために便利なWP SiteManagerについて
Tsuyoshi.
超初心者でもできた!AzureMobileService JSバージョン
超初心者でもできた!AzureMobileService JSバージョン
Yuriko Kamimori
ブログによる情報発信で起こった3つの変化
ブログによる情報発信で起こった3つの変化
Shogo Shirai
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
WheetTweet
XRにおけるプロトタイピングについて
XRにおけるプロトタイピングについて
WheetTweet
PWA A Go-Go !! @ABC2018A 20181013
PWA A Go-Go !! @ABC2018A 20181013
Ryu Shindo
Spring Boot Introduction
Spring Boot Introduction
chibochibo
オープンソースによるイノベーションの継続
オープンソースによるイノベーションの継続
Takayuki Miyauchi
Tendances
(10)
TypeScript And ALM
TypeScript And ALM
WordPress とコミュニティについて
WordPress とコミュニティについて
WordPressをCMSとして利用するために便利なWP SiteManagerについて
WordPressをCMSとして利用するために便利なWP SiteManagerについて
超初心者でもできた!AzureMobileService JSバージョン
超初心者でもできた!AzureMobileService JSバージョン
ブログによる情報発信で起こった3つの変化
ブログによる情報発信で起こった3つの変化
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
PWAを使ってWebXRコンテンツをオフラインで動くようにする手順について
XRにおけるプロトタイピングについて
XRにおけるプロトタイピングについて
PWA A Go-Go !! @ABC2018A 20181013
PWA A Go-Go !! @ABC2018A 20181013
Spring Boot Introduction
Spring Boot Introduction
オープンソースによるイノベーションの継続
オープンソースによるイノベーションの継続
En vedette
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
irof N
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
khisano
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
SORACOM,INC
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
yy yank
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
hishidama
Real world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.com
Mathieu Dumoulin
デバッガのしくみ(JDI)を学んでみよう
デバッガのしくみ(JDI)を学んでみよう
fukai_yas
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
sogdice
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Toshiaki Maki
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
Masatoshi Tada
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
Yusuke Suzuki
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Takakiyo Tanaka
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
Masatoshi Tada
Arachne Unweaved (JP)
Arachne Unweaved (JP)
Ikuru Kanuma
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
yy yank
2017spring jjug ccc_f2
2017spring jjug ccc_f2
Kazuhiro Wada
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
Kosuke Kida
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Hiroyuki Ohnaka
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
hajime funaki
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
JustSystems Corporation
En vedette
(20)
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
よくある業務開発の自動化事情 #jjug_ccc #ccc_cd3
Javaにおけるネイティブコード連携の各種手法の紹介
Javaにおけるネイティブコード連携の各種手法の紹介
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
日本 Java ユーザーグループ JJUG CCC 2015 Fall by ソラコム 片山
【こっそり始める】Javaプログラマコーディングマイグレーション
【こっそり始める】Javaプログラマコーディングマイグレーション
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Real world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.com
デバッガのしくみ(JDI)を学んでみよう
デバッガのしくみ(JDI)を学んでみよう
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Java8移行から始めた技術的負債との戦い(jjug ccc 2015 fall)
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Reactive Webアプリケーション - そしてSpring 5へ #jjug_ccc #ccc_ef3
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
マイクロサービスアーキテクチャ - アーキテクチャ設計の歴史を背景に
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
タイムマシン採用:明日のエンタープライズJavaの世界を予想する -Java EE7/クラウド/Docker/etc.-
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
Arachne Unweaved (JP)
Arachne Unweaved (JP)
VMの歩む道。 Dalvik、ART、そしてJava VM
VMの歩む道。 Dalvik、ART、そしてJava VM
2017spring jjug ccc_f2
2017spring jjug ccc_f2
Jjugccc2017spring-postgres-ccc_m1
Jjugccc2017spring-postgres-ccc_m1
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
Java8移行は怖くない~エンタープライズ案件でのJava8移行事例~
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
U-NEXT学生インターン、過激なJavaの学び方と過激な要求
Kotlin is charming; The reasons Java engineers should start Kotlin.
Kotlin is charming; The reasons Java engineers should start Kotlin.
Similaire à プログラム初心者がWebサービスをリリースして運営するまで
React native
React native
卓馬 三浦
1112 nuxt
1112 nuxt
卓馬 三浦卓馬
0728
0728
卓馬 三浦卓馬
5 1
5 1
卓馬 三浦
LW's social media way
LW's social media way
loftwork
Vu
Vu
卓馬 三浦卓馬
Vue.js
Vue.js
卓馬 三浦卓馬
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみる
You&I
エネチェンジでのSTIの使い方紹介
エネチェンジでのSTIの使い方紹介
Yuya Taki
オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
Yosuke TOMITA
Ionic2
Ionic2
卓馬 三浦卓馬
Firebase0901
Firebase0901
卓馬 三浦卓馬
UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選
Yuki Okada
Istio, Kubernetes and Cloud Foundry (修正版)
Istio, Kubernetes and Cloud Foundry (修正版)
Kazuto Kusama
Spath for enterprise
Spath for enterprise
Koichiro Sumi
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
Innova Inc.
Kaggle
Kaggle
卓馬 三浦卓馬
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
Hiroshi Urabe
Emacs softLayer
Emacs softLayer
Shuichi Yukimoto
0908
0908
卓馬 三浦卓馬
Similaire à プログラム初心者がWebサービスをリリースして運営するまで
(20)
React native
React native
1112 nuxt
1112 nuxt
0728
0728
5 1
5 1
LW's social media way
LW's social media way
Vu
Vu
Vue.js
Vue.js
Team Foundation Serivceを使ってみる
Team Foundation Serivceを使ってみる
エネチェンジでのSTIの使い方紹介
エネチェンジでのSTIの使い方紹介
オフライン行動を支えるメール配送管理 at サイタ
オフライン行動を支えるメール配送管理 at サイタ
Ionic2
Ionic2
Firebase0901
Firebase0901
UXを損ねる静的コンテンツ配信アンチパターン7選
UXを損ねる静的コンテンツ配信アンチパターン7選
Istio, Kubernetes and Cloud Foundry (修正版)
Istio, Kubernetes and Cloud Foundry (修正版)
Spath for enterprise
Spath for enterprise
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
Kaggle
Kaggle
WordPressで行う継続的インテグレーション入門編
WordPressで行う継続的インテグレーション入門編
Emacs softLayer
Emacs softLayer
0908
0908
Dernier
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Dernier
(12)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
プログラム初心者がWebサービスをリリースして運営するまで
1.
プログラム初心者が Webサービスをリリースして運営するまで
2.
自己紹介 ・岩崎 知亮/@MulticolorWorld ・福岡の某大学の学生 ・プログラマー(アルバイト)やってます そこではJavaとかSQLとか書いてる ・個人でWebサービスとかも
3.
自己紹介 ・岩崎 知亮/@MulticolorWorld ・福岡の某大学の学生 ・プログラマー(アルバイト)やってます ・個人でWebサービスとかも
4.
運営してるWebサービス ● ツイ廃あらーと https://twihaialert.net/ Twitter連携サービス 日付変更時に前日のTweet数を通知 など 無料 【祝】登録アカウント数10万突破 Javaで書いてます
5.
6.
Nginx アプリケーション (SpringBoot) MySQL cron処理 (こっちもJava) OSはFreeBSD →OpenSUSE
7.
User TwitterAccount 1:多 ● Userは登録してる人一人につき1つ ●
アカウントを複数持っている人がTweet数を合算して 集計できるように1:多でTwitterAccountを持つ
8.
今日する話 ● ツイ廃あらーとについて ● 無料でサービスを運用すること ● 大学の話
9.
ツイ廃あらーとの話
10.
運営を始めたきっかけ ● 自分で一から開発したわけではない ● Twitterのフォロワーだった先輩から譲り受けた ● そのとき自分は2年生、Javaを勉強し始めて1年 ちょっと。 ●
ユーザー数2万くらいだった
11.
最初のツイ廃あらーと ● Web部分はPHP ● cron処理はJava ●
あとcssとかもないタダのhtmlな登録画面だった (資料に使おうと思ったらもう残ってなかった)
12.
引き継いで最初にやったこと ● とりあえずWeb側とcron側をJavaで書き直す PHPを読むための勉強はやった
13.
まずはこれ
14.
Eclipse
15.
開発環境 ● Javaの初心者向けのWebページはやたらEclipse を推していた ● 自分もその時点ではEclipseを使ってた ● ビルドツール?知らない ● フレームワーク?知らない ●
JarやwarはEclipseのExport機能で作ってた
16.
使ったもの ● Twitterを利用する部分 → Twitter4j
(http://twitter4j.org/) ● Webの構築 → Servlet/jsp ● ORマッパー → Hibernate
17.
18.
ひとまず完成 ● デザインはできる友人に丸投げ ● これでとりあえず1年くらい動かしてた ● 不具合は意外となかった ● cron部分はThreadクラスを作って並列で回してた (まだスレッドプールの存在を知らなかった)
19.
動かしてた間 ● 監視はmunin ● アカウント数は4万くらいまで増えた ● 不具合は無いけど新機能要望は結構来てた (新規登録はあるけど削除とかはないような状態 だったので)
20.
もう一度リファクタリング ● 動かしている間にSpringBootを知った ● もうちょっとイカしたフレームワークなり何なりが使 いたかった(Servlet/jspだけなのは流石に・・・) ● ついでにビルドツールも使いたい
21.
このリファクタリングを始める直前くらいに を手に入れて開発環境をそっちに移した (今からだともう戻れる感じが0)
22.
リファクタリング ● フレームワークはSpringBoot Spring MVC
+ Spring Data JPA + Thymeleaf ● 簡単すぎてびっくりするくらい
23.
使ったツール ● ビルドツール maven入れた なぜ今まで知らなかったのかと公開するレベル ● ソースコード管理 git(GitHub)を導入 なぜ今までしらなかったの(ry
24.
cron部分 ● Threadクラスを使っていたのをExecutorServiceを使 うように変更 ● データベースの扱い方をWeb(SpringBoot)と揃えた かったが、上手くやる方法が思いつかなかったため今 回は変更しなかった ● 考えられる方法 ・データベースを扱う部分をモジュールで切り出してjar 化 ・cronを行う部分をSpring
Batchを使ってWebと統合
25.
今現在まで ● アカウント数は10万まで増えた ● 最近だと一日に100人増えて50人減るペース ●
監視はmuninからmackerelへ変更
26.
今現在の問題 ● アカウント数が増えすぎてcronが追いつかない cronは30分に一回、10万アカウント、並列度100 →1アカウントにつき1.8秒・・・・・・? ● 特に1日分のTweet集計を行う0:00時のcronの負 荷が高くエラーが出ることも
27.
今現在の問題 ● サーバー代(維持費) 現在はさくらのVPS(3000円ちょっと)、あとドメイン 代とSSL証明書代 サービス自体は無料なのでこれ以上サーバーのス ペックを上げるのはちょっと・・・・・ 一度登録すれば動くためうまく費用を回収するプラ ンが思いつかない
28.
こういう部分でハマった ● 文字コードの概念を理解してなくてソースコードを SJISで保存して実行していた → 通知の文章が化ける ● データベースに慣れておらず、バックアップを取ろう としてテーブルをdropした(え)
29.
こういう部分でハマった ● VPS特有の性質 一時期、夜間のcronだけやたらと時間がかかること があった。 → VPSはリソースを他のユーザーと共有してつ かっている →
夜間パッチのせい?
30.
こういう部分でハマった ● DNSやTwitterAPI側が落ちた時にログインやcron でエラーが出る → 自分じゃどうしようもないので告知だけ (それでも怒るユーザーはいる)
31.
こういう部分でハマった ● プログラムのバグなどでアプリケーションサーバや OS自体が死ぬ → 学校にいる時じゃ対処できないので家に帰るま で死んだまま 冗長化するような余裕は無い()
32.
無料サービスを運営することの話
33.
自分は ● 紹介したツイ廃あらーと ● 他にも幾つか同じようなWebアプリケーションを運 営してる ほぼTwitter関連 主にTwitterをよく使うのでTwitter関連のアプリケー ションのアイデアが思いつきやすい
34.
利点 ● プログラミングの入り口としてとても良い プログラミング言語の勉強はしたけど、何を作って どういうふうに公開したら良いのかは分からない人 も多い。 →Webアプリケーション,PaaS
35.
利点 ● インフラからアプリケーションまでの幅広い部分を (小規模であるが)扱える OSのインストール ミドルウェアの管理 セキュリティ関連 → 実際にやってみないとわからなかったことも多 かった
36.
利点 ● 実際にサービスを運営する心構えができた データベースの中にユーザーが登録したデータが 入っているのを見ると緊張する セキュリティに対する考え、ユーザーに対する心構え
37.
逆のこと ● 金はかかる 費用が回収できるようなサービスであれば良いけ ど、ユーザーが増えればそれなりの値段になってく る 自分は費用は勉強代と思うようにしている
38.
逆のこと ● 仕事で書くのではない 作りたい(その機能が欲しい)から作る モチベーションは保ちにくいかもしれない
39.
逆のこと プログラマーとしてアルバイトに入る前 → 余った時間でいくらでもプログラミングやってた (勉強) アルバイトを始める → 会社でプログラムを書くようになったので家で書 く量は結構少なくなった
40.
大学とプログラム初心者への話
41.
※自分の体感です ※すべての人に当てはまるわけではありません
42.
自分の所属している学科 ● 入学した時は電気と情報が一緒になっている ● 2年次に上がるときに電気と情報が課程にわかれ る 1年次は同じ授業を受けてる
43.
情報課程 ● 1年次 初めてのプログラミング(言語:Scheme) 数学 電気回路 論理学の基礎
44.
情報課程 ● 2年次 アーキテクチャ OSのしくみ 数学 論理学 情報理論 プログラミング(C言語、Java)
45.
情報課程 ● 3年次 通信 離散数学 確率 統計数学 実験 →
46.
情報課程 ● 実験 低レベルな層から高レベルな層へ順番にやる ブレッドボードで加算器 → それをFPGAで再現 → FPGAで16bitCPUを実装
→ アセンブリとC言語でOSの機能を実装
47.
情報課程 ● 4年次 卒論 自分は来年やります
48.
情報課程 ● 実際のプログラミング言語に触ることよりも座学が 圧倒的に多い その代わり3年の実験はがっつり (週6限分 = 9時間)
49.
自分が初心者だったころの話と 初心者に向けて
50.
勉強しはじめの頃
51.
なにもわからない
52.
わからない ● いわゆる「何がわかってないかわからない」状態 初心者用の入門ページをみてもつながりがわからな い 当然Javadocなんかを読んでも「何が書いてあるか」 がわからない (そもそも存在に辿りつけない) →「各プログラミング言語には仕様が書いてあるリ ファレンスのようなものがあるはずだ」という理解が ない
53.
ちょっとわかってきた
54.
ちょっとわかってきた ● コピペしたコードが何を書いてるかがわかる ● 「そのプログラミング言語」の仕様がなんとなくわ かってくる ● 「そのプログラミング言語」の仕様書の中をなんと なく探せる
55.
ちょっとわかってきた ● 自分のコードがどんなふうに実行されるのかはわ からない ● 他のプログラミング言語のことはまだわからない ● 関数型とかオブジェクト指向とかのことはまだわか らない ● フレームワークつかったりとかはまだ難しい
56.
ここから次の段階までが時間がかかる (自分は3年半くらいかかりました)
57.
けっこうわかる ● 自分の書いたコードがどのように実行されるのかが わかる ● フレームワークの仕組みやデザインパターンなどの 知識がつく ● 「hoge」を達成するためには「fuga」なコードを書く というパターンが身につく → 達成するべき事柄に対応するコードが漠然とでも 思い浮かべられるようになる
58.
すごくわかる ● このレベルになれるのはいつになること か・・・・・・・・・・・・
59.
「ちょっとわかる」 と 「けっこうわかる」 の 壁
60.
壁を壊す前 ● いろんな雑多な知識は頭のなかにある プログラミング言語、OS、アーキテクチャ、通信、数 学、論理学、統計学 etc…… ● あるけど、つながっていなくてふわふわしている感じ
61.
これが ある時前触れもなく
62.
すべて一直線に繋がる日が来ます
63.
つながると・・・・・・・
64.
壁を壊した後 ● 結構わかる状態になる 自分の知っていることだけでなく、自分の知らない 事柄に出会っても想像できるようになる。 (例) Hogeフレームワークの新しい機能Fuga 多分Hogeのこの部分の補強につかわれるんだろう とか、Hogeのこの機能と組み合わせると良さそうだ なとか
65.
壁を壊した後 ● 逆に、今自分が持っているもので、「何を達成不可 能」なのかにも考えが行くようになる (例) ● きっとこのライブラリは「Hoge」という問題を解決す るためのものだから「Fuga」には使えないよね〜。
66.
読める、書ける、想像できる
67.
楽しい!!
68.
とはいえ 壁を壊すには時間がかかる
69.
手助けするもの
70.
(ITも含めた)知識すべてが武器
71.
武器 ● 例えば・・・・・アーキテクチャやOS、メモリ、通信などの知識 ← 大学の授業 ●
例えば・・・・・ミドルウェアの扱い、OS、セキュリティ ← Webサービス運営 ● 例えば・・・・・実際のアプリケーションに関すること ← アプリ開発、日々のプログラミング もちろんこれに限りません
72.
武器 ● ITに関する会社のこと、ニュース ファストサー(ry、Google、Microsoft ● ITに限らない世の中のこと ここまでくると何が影響を及ぼしてるかわからない のでとにかくいろんなものを見たり聞いたりする
73.
初心者のみなさん
74.
きっといつか壁を壊す日が来ます
75.
その時まで 頑張りましょう
76.
そして楽しい技術者ライフを!
77.
ご静聴ありがとうございました
Télécharger maintenant