Submit Search
Upload
那些在NTUST.CC背後。你所不知道的故事
•
143 likes
•
33,777 views
Yi-Feng Xie
Follow
Technology
Report
Share
Report
Share
1 of 216
Download now
Download to read offline
Recommended
Introduction to Drupal (中文)
Introduction to Drupal (中文)
Hana Chang
Create docker image with bluemix dev ops
Create docker image with bluemix dev ops
Joseph Chang
愛樂工程師
愛樂工程師
Tom Chen
Create to blumix docker container with rest api
Create to blumix docker container with rest api
Joseph Chang
利用 iOS App 技術創業的 13 個方法
利用 iOS App 技術創業的 13 個方法
彼得潘 Pan
Facebook粉絲專頁課程
Facebook粉絲專頁課程
Norika
WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guide
hugo lu
Protecting Source Code
Protecting Source Code
Godfrey Nolan
Recommended
Introduction to Drupal (中文)
Introduction to Drupal (中文)
Hana Chang
Create docker image with bluemix dev ops
Create docker image with bluemix dev ops
Joseph Chang
愛樂工程師
愛樂工程師
Tom Chen
Create to blumix docker container with rest api
Create to blumix docker container with rest api
Joseph Chang
利用 iOS App 技術創業的 13 個方法
利用 iOS App 技術創業的 13 個方法
彼得潘 Pan
Facebook粉絲專頁課程
Facebook粉絲專頁課程
Norika
WSO2 IoTS Device Manufacturer Guide
WSO2 IoTS Device Manufacturer Guide
hugo lu
Protecting Source Code
Protecting Source Code
Godfrey Nolan
Dvwa low level
Dvwa low level
hackstuff
新手無痛入門Apk逆向
新手無痛入門Apk逆向
hackstuff
Python 網頁爬蟲由淺入淺
Python 網頁爬蟲由淺入淺
hackstuff
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
Yi-Feng Tzeng
從線上售票看作業系統設計議題
從線上售票看作業系統設計議題
National Cheng Kung University
Write microservice in golang
Write microservice in golang
Bo-Yi Wu
Generative Adversarial Networks
Generative Adversarial Networks
Mark Chang
進階主題
進階主題
Justin Lin
Making Linux do Hard Real-time
Making Linux do Hard Real-time
National Cheng Kung University
iOS design: a case study
iOS design: a case study
Johan Ronsse
Serverless
Serverless
Young Yang
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享
Philip Zheng
2017-03-06 開放政府 PO 月會
2017-03-06 開放政府 PO 月會
Audrey Tang
[系列活動] 機器學習速遊
[系列活動] 機器學習速遊
台灣資料科學年會
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
SlideShare
More Related Content
Viewers also liked
Dvwa low level
Dvwa low level
hackstuff
新手無痛入門Apk逆向
新手無痛入門Apk逆向
hackstuff
Python 網頁爬蟲由淺入淺
Python 網頁爬蟲由淺入淺
hackstuff
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
Wen-Tien Chang
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
Yi-Feng Tzeng
從線上售票看作業系統設計議題
從線上售票看作業系統設計議題
National Cheng Kung University
Write microservice in golang
Write microservice in golang
Bo-Yi Wu
Generative Adversarial Networks
Generative Adversarial Networks
Mark Chang
進階主題
進階主題
Justin Lin
Making Linux do Hard Real-time
Making Linux do Hard Real-time
National Cheng Kung University
iOS design: a case study
iOS design: a case study
Johan Ronsse
Serverless
Serverless
Young Yang
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享
Philip Zheng
2017-03-06 開放政府 PO 月會
2017-03-06 開放政府 PO 月會
Audrey Tang
[系列活動] 機器學習速遊
[系列活動] 機器學習速遊
台灣資料科學年會
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
Getting Started With SlideShare
Getting Started With SlideShare
SlideShare
Viewers also liked
(17)
Dvwa low level
Dvwa low level
新手無痛入門Apk逆向
新手無痛入門Apk逆向
Python 網頁爬蟲由淺入淺
Python 網頁爬蟲由淺入淺
淺談 Startup 公司的軟體開發流程 v2
淺談 Startup 公司的軟體開發流程 v2
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
恰如其分的 MySQL 設計技巧 [Modern Web 2016]
從線上售票看作業系統設計議題
從線上售票看作業系統設計議題
Write microservice in golang
Write microservice in golang
Generative Adversarial Networks
Generative Adversarial Networks
進階主題
進階主題
Making Linux do Hard Real-time
Making Linux do Hard Real-time
iOS design: a case study
iOS design: a case study
Serverless
Serverless
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享
2017-03-06 開放政府 PO 月會
2017-03-06 開放政府 PO 月會
[系列活動] 機器學習速遊
[系列活動] 機器學習速遊
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
Getting Started With SlideShare
Getting Started With SlideShare
那些在NTUST.CC背後。你所不知道的故事
1.
那些在 NTUST.CC 背後
你所不知道的故事 JSON @ SITCON 2014 2014.3.15
2.
About me JSON (謝宜峯)
台灣科技大學資工系 Web Developer! yfxie@me.com! http://www.json.tw
3.
Agenda NTUST.CC 的故事 使⽤用的免費資源 相關技術
4.
大學生活「選課」 無疑是最重要的戰役 by ⽶米卡的塗鴉本
5.
對使用者而言 NTUST.CC是什麼?
6.
選課前的沙盤推演
7.
8.
個人模擬+學校的查課系統 差別? 直接上戰場
個⼈人模擬 使⽤用CC
9.
用來找教室也很方便
10.
CC也扮演校園的 交易平台
11.
原本以為不會有人用
12.
結果
13.
14.
15.
聽說在網址後面加 female! 會看到 隱
藏 版彳 ㄏ ㄢˋ
16.
經調查顯示有更多的 使用者透過CC來找 同
學ㄓ ㄥ ㄇ ㄟˋ
17.
18.
19.
各位還是不要太認真
20.
對我而言 NTUST.CC又是什麼?
21.
練功
22.
你知道把木瓜種的 又大有美的方法嗎
23.
快去看KANO
24.
它也是憤怒下的產物 待會再來談
25.
開始談吧! 為什麼要做CC
26.
高中時看了一部電影
27.
在講Facebook的故事
28.
the social network 社群網戰
29.
而且我看到 Facebook公司成立...
30.
31.
我的生日
32.
熱血!
33.
於是想在大學裡作出一 個可以影響校園的東西
34.
我的想法
35.
36.
困難點在想不出有什麼 東西會吸引人使用
37.
因為 沒人用的東西我不想做
38.
直到有一天...
39.
我正在選課模擬
40.
只要我想換一門課 就悲劇了
41.
在CC之前 大家好像都是這樣排課
42.
沒有一個好用的工具 改善現有的狀況
43.
我的室友Taylor
44.
我絕對不會說他是前陣子爆紅 氣象局網站設計概念稿的作者 www.taylorhu.com/web-design/cwb-website-revamp/
45.
話說那個網站上線了 weather.json.tw
46.
47.
48.
「你去寫選課模擬阿」
49.
我知道他是隨口說說的 但是我認真了
50.
而且這又是大家的問題 這一點就讓我更有動力
51.
我當下覺得
52.
53.
正值選課時期 寫完可以⾺馬上試試⽔水溫
54.
不分系選課自由 台科有個科系叫「全校不分系」 ⼀一屆⼈人數多達200⼈人 有⾼高職⽣生也有⾼高中⽣生 有繁星也有技優 ⽽而且選課很⾃自由!更需要這個模擬系統
55.
再加上 I’m a
developer.
56.
可謂天時地利人和 所以...
57.
58.
首先我需要全校的課程資料
59.
60.
61.
62.
63.
有了資料是好的開始, 可以開始寫選課模擬了
64.
分析需求 ·• 課表和查課要做在一起 ·•
查詢課程要能即時顯示 ·• 即時知道目標課程是否衝堂 ·• 即時排課 Ajax
65.
就這樣弄到半夜三點...
66.
第一版完成了
67.
68.
69.
.NET域名 似乎被電研社註冊了
70.
於是決定用...
71.
72.
2011.11.2
73.
74.
75.
76.
選課模擬上線那天
77.
沒有特別宣傳 但有些同學主動轉貼
78.
登入的使用者人數 直衝200多人
79.
可惜沒辦法像電影一樣 影響整個學網
80.
過了幾天有人問到...
81.
82.
靈感一來
83.
84.
85.
86.
87.
88.
89.
後來還加入 個人頁面、塗鴉牆、好友等 功能...有點像Facebook
90.
還有...
91.
92.
93.
接著對方的FB塗鴉牆...
94.
95.
不過之後全部拿掉了
96.
我覺得一個好的網站 功能不用太多
97.
BTW, 還要感謝一位 隱角
98.
99.
故事聽完了
100.
來講一些 大家比較有興趣的東西
101.
CC用過的免費資源
102.
免費簡訊 Nexmo! https://www.nexmo.com 免費贈送€2 / 每封€0.03
= 66封 台灣的簡訊費好像漲了, 之前算好像可破百封
103.
104.
免費發大量信件 Mandrill! 12K per month! http://mandrill.com/
105.
106.
免費SSL StartSSL! 免費⼀一年! https://www.startssl.com/
107.
現在好像不好申請了
108.
最近有用到一家SSL! 每年只要$8.95USD http://www.ssls.com/
109.
110.
這要錢...
111.
不過本來就有 這麼一台主機了
112.
113.
開24HR總要電費吧!?
114.
免費電 台灣科技大學宿舍 住多久用多久 http://www.ntust.edu.tw
115.
當時沒有免費EC2! 可是現在不同了!
116.
免費主機 AWS EC2! Micro Free
Tier免費一年! http://blog.developer.tw/post/740-aws-ec2-free-instance
117.
不過之後CC還是 先後搬到Linode、EC2上
118.
「幹麻花自己得錢?」
119.
這問題該怎麼回答...
120.
121.
「放個廣告賺錢也好阿」
122.
123.
1. 破壞使用體驗 2.
只有特定時間有人使用 3. 誰會點廣告?
124.
最重要的是...
125.
126.
CC用到的相關技術
127.
第一版的CC
128.
PHP手刻 很髒的那種...
129.
當時使用 PHP的file_get_contents
及正規式抓取課程資料
130.
jQuery 2.X版不支援IE6,7,8
131.
By the way, YOU
MIGHT NOT NEED JQUERY http://youmightnotneedjquery.com/
132.
不過 我依然覺得jQuery是必要
133.
用了大量的Ajax! 如頁面切換、選課 還有做類似FB的東西
134.
想當初N年前比賽
135.
136.
Ajax要寫 new XMLHttpRequest….
還要記狀態碼 基本功能寫完就要數十行了
137.
如今一行就搞定 $.ajax({…})
138.
2012.8 暑假利用時間改版 事實上是整個用MVC重寫
139.
使用PHP MVC Framework
Codeigniter
140.
使用CSS Framework Bootstrap
141.
使用Version Control System
Subversion(SVN)
142.
第二次改版
143.
換個語言寫 所以是完全重寫!
144.
還記得那兩樣很潮的 東西很久以前看過 只是一直沒機會用...
145.
146.
147.
N年前某個網站 站長推薦我學 Ruby
148.
加上看到 Ruby之父松本行弘說的話
149.
開發Ruby的核心價值 是希望能讓開發者能夠 快快樂樂的寫程式
150.
於是優先選擇了...
151.
152.
Rails 使用心得
153.
以新語言重寫現有網站 這種學習效果還不錯
154.
重寫過程還會發現 之前怎麼寫了那麼鳥的 Code
155.
然後還是把它看待成
156.
156 練功
157.
版本控制改用 http://ihower.tw/git/
158.
Font Awesome 使⽤用字體取代icon圖⽚片
159.
Google Font
160.
中文字體可考慮...
161.
justFont 我是用在別的Project http://paperflight.ntust.cc/
162.
我覺得很潮的三大神器
163.
寫HTML用 Haml
164.
Haml
165.
省去檢查結束標籤時間 和易於閱讀的HTML架構
166.
HAML! 讓你的巢狀結構可以越寫越深
167.
寫CSS用 Sass
168.
Sass 寫CSS也可以⽤用變數 $main-color: #fff; $main-font: Helvetica,
sans-serif; ! body{ font-family:$main-font; color:$main-font; }
169.
Sass Nesting, 超實⽤用! ul{…} ul li{…} ul
li a{…} ul{ … li{ … a{ … } } }
170.
Sass Mixins @mixin border-radius($radius) { -webkit-border-radius:
$radius; -moz-border-radius: $radius; -ms-border-radius: $radius; border-radius: $radius; } ! .box { @include border-radius(10px); }
171.
還有很多...Feature
172.
時間就是金錢 效率就是生命
173.
SASS! 替你省下不少時間
174.
寫JavaScript用 Coffeescript
175.
Coffeescript?
176.
縮排 if(foo){ a = 1; b
= 2; } alert(bar) if foo a = 1 b = 2 alert(bar)
177.
承襲Ruby特色 if(foo){ a = bar; } a
= bar if foo var name = “JSON” var msg = “hello” var foo = name + “ say ” + msg 也更於易讀 name = “JSON” msg = “hello” foo = “#{name} say #{msg}”
178.
還有很多...Feature
179.
易於閱讀的程式碼 使你想繼續維護它
180.
Coffeescript 增加你重構的意願度
181.
請小心使用 Coffeescript
182.
183.
還有個工具也不錯
184.
開發小功能、雛形很好用
185.
重點是 它也支援三大神器
186.
RoR重寫後 第一個版本
187.
188.
個人頁面
189.
190.
我超討厭IE的
191.
想到IE就想到這張圖
192.
193.
看看瀏覽器使用狀況
194.
195.
於是決定...
196.
197.
現在的CC
198.
199.
200.
201.
心得
202.
活在問題當下的人 是解決問題的最佳人選
203.
有想法就要趕快實現 因為你不做就被別人做走了
204.
205.
這學期開學第一天 進到學校裡聽到的第一句話
206.
路人甲:「我是用NTUST.CC」
207.
成就感就是動力阿!
208.
老實說我覺得CC 不是什麼很厲害的作品
209.
也沒用到多了不起的技術
210.
它只是 解決一個沒人解決問題 的作品
211.
還有…
212.
前面講到...
213.
於是想在大學裡作出一 個可以影響校園的東西
214.
似乎做到了!
215.
Q&A
216.
JSON @ SITCON
2014 Thanks for your attention
Download now