Submit Search
Upload
KSDG Python and MongoDB for web
•
9 likes
•
3,073 views
Toomore
Follow
影像紀錄區製作過程與未來經營方向 http://pi.isuphoto.org/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 68
Download Now
Download to read offline
Recommended
影像紀錄區開發歷程
影像紀錄區開發歷程
Toomore
小奴部落格運用
小奴部落格運用
ininu0205
Cahokia:Collapsing Inot Thin Air
Cahokia:Collapsing Inot Thin Air
katmoore
Windygallery@molome
Windygallery@molome
Rawin Windygallery
E write - ywca boston how to publish e newsletter that pays you back - 8july2013
E write - ywca boston how to publish e newsletter that pays you back - 8july2013
LeslieOflahavan
Development evaluation (041115)
Development evaluation (041115)
Centre for Adult Learning and Literacy
Helmi Suhaimi
Helmi Suhaimi
Mohd Helmi Md Suhaimi
778 吴冠中画 1(Hys 2009)
778 吴冠中画 1(Hys 2009)
yangbqada
More Related Content
Viewers also liked
Maths Presentation
Maths Presentation
shaparrinothman
Pattern
Pattern
Huang-Ming Chang
WCIT 2010 Dov Winer
WCIT 2010 Dov Winer
Dov Winer
Majalah OMEGA
Majalah OMEGA
Nur Agustinus
Epos Gilgamesh
Epos Gilgamesh
Nur Agustinus
ginaisraelScientix
ginaisraelScientix
Dov Winer
Wikis and Blogs: When, Why, and How to Use Them
Wikis and Blogs: When, Why, and How to Use Them
LeslieOflahavan
030714 Vaadat Internet Jafi Pedagogia
030714 Vaadat Internet Jafi Pedagogia
Dov Winer
Samsung mp3 YP-S3
Samsung mp3 YP-S3
julia135
Profile Lembaga
Profile Lembaga
Centre for Adult Learning and Literacy
061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final
Dov Winer
Semibase Portfolio
Semibase Portfolio
semibase
Inverted Image
Inverted Image
yangbqada
Tomorrow's Web and Future Technologies - WDC2011
Tomorrow's Web and Future Technologies - WDC2011
Robin Hawkes
ZinZin - Para Pengunjung Misterius
ZinZin - Para Pengunjung Misterius
Nur Agustinus
Kitab Pertama tentang Masa Kecil Yesus Kristus
Kitab Pertama tentang Masa Kecil Yesus Kristus
Nur Agustinus
Calculating building heights using a phone camera
Calculating building heights using a phone camera
Robin Hawkes
Absolutely Cool Photos Ys
Absolutely Cool Photos Ys
yangbqada
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Robin Hawkes
งานนำเสนอ1
งานนำเสนอ1
wannis
Viewers also liked
(20)
Maths Presentation
Maths Presentation
Pattern
Pattern
WCIT 2010 Dov Winer
WCIT 2010 Dov Winer
Majalah OMEGA
Majalah OMEGA
Epos Gilgamesh
Epos Gilgamesh
ginaisraelScientix
ginaisraelScientix
Wikis and Blogs: When, Why, and How to Use Them
Wikis and Blogs: When, Why, and How to Use Them
030714 Vaadat Internet Jafi Pedagogia
030714 Vaadat Internet Jafi Pedagogia
Samsung mp3 YP-S3
Samsung mp3 YP-S3
Profile Lembaga
Profile Lembaga
061112 Eva Minerva2006 Final
061112 Eva Minerva2006 Final
Semibase Portfolio
Semibase Portfolio
Inverted Image
Inverted Image
Tomorrow's Web and Future Technologies - WDC2011
Tomorrow's Web and Future Technologies - WDC2011
ZinZin - Para Pengunjung Misterius
ZinZin - Para Pengunjung Misterius
Kitab Pertama tentang Masa Kecil Yesus Kristus
Kitab Pertama tentang Masa Kecil Yesus Kristus
Calculating building heights using a phone camera
Calculating building heights using a phone camera
Absolutely Cool Photos Ys
Absolutely Cool Photos Ys
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
Rawkets - A Massively Multiplayer HTML5 Game [Mozilla GameOn10]
งานนำเสนอ1
งานนำเสนอ1
Similar to KSDG Python and MongoDB for web
How to setup mastodon in chinese
How to setup mastodon in chinese
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
Banquet 39
Banquet 39
Koubei UED
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Joseph Chiang
Using google appengine (2)
Using google appengine (2)
Wei Sun
Django入门
Django入门
oikomi
2012 php conf slide PIXNET 如何使用 php
2012 php conf slide PIXNET 如何使用 php
ronnywang_tw
Pyramid框架介绍
Pyramid框架介绍
panjunyong
Tornado开发实践
Tornado开发实践
ZY Zhang
Ryu Learning Guide
Ryu Learning Guide
呈 李
Python meetup 1
Python meetup 1
Vic Yang
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
Souyi Yang
Using google appengine_1027
Using google appengine_1027
Wei Sun
HTML5 实战 WebApp 阅读应用– Shiu
HTML5 实战 WebApp 阅读应用– Shiu
Jingchao Di
從雛形到設計-了解您的使用者在想什麼
從雛形到設計-了解您的使用者在想什麼
Souyi Yang
Node js实践
Node js实践
myzykj
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
Souyi Yang
Openshift by mtchang
Openshift by mtchang
Chang Mt
Linux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
Kenny (netman)
Python 于 webgame 的应用
Python 于 webgame 的应用
勇浩 赖
Using google appengine_final
Using google appengine_final
Wei Sun
Similar to KSDG Python and MongoDB for web
(20)
How to setup mastodon in chinese
How to setup mastodon in chinese
Banquet 39
Banquet 39
模块加载策略 - 2012 SDCC, 北京
模块加载策略 - 2012 SDCC, 北京
Using google appengine (2)
Using google appengine (2)
Django入门
Django入门
2012 php conf slide PIXNET 如何使用 php
2012 php conf slide PIXNET 如何使用 php
Pyramid框架介绍
Pyramid框架介绍
Tornado开发实践
Tornado开发实践
Ryu Learning Guide
Ryu Learning Guide
Python meetup 1
Python meetup 1
高雄和春資工系-Axure RP基礎課程
高雄和春資工系-Axure RP基礎課程
Using google appengine_1027
Using google appengine_1027
HTML5 实战 WebApp 阅读应用– Shiu
HTML5 实战 WebApp 阅读应用– Shiu
從雛形到設計-了解您的使用者在想什麼
從雛形到設計-了解您的使用者在想什麼
Node js实践
Node js实践
HPX台南讀書會-Axure RP基礎課程
HPX台南讀書會-Axure RP基礎課程
Openshift by mtchang
Openshift by mtchang
Linux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
Python 于 webgame 的应用
Python 于 webgame 的应用
Using google appengine_final
Using google appengine_final
More from Toomore
如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014
如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014
Toomore
如何用 Twilio 發送 COSCUP 追殺簡訊
如何用 Twilio 發送 COSCUP 追殺簡訊
Toomore
創業抬槓 20130831 分享 Pinkoi
創業抬槓 20130831 分享 Pinkoi
Toomore
Toomore 20130627 Taipei.py
Toomore 20130627 Taipei.py
Toomore
MOPCON Lightning Talk 閃電秀 用照片說故事 - 影像紀錄區
MOPCON Lightning Talk 閃電秀 用照片說故事 - 影像紀錄區
Toomore
又一個誤聽 GAE 的悲劇
又一個誤聽 GAE 的悲劇
Toomore
goristock in Coscup flash
goristock in Coscup flash
Toomore
財務個案分析報告 尖美建設
財務個案分析報告 尖美建設
Toomore
「兩岸簽訂Mou後,證券業之未來發展佈局」心得報告
「兩岸簽訂Mou後,證券業之未來發展佈局」心得報告
Toomore
981金融機構與管理辯論報告(反對方)
981金融機構與管理辯論報告(反對方)
Toomore
建構金融機構SaaS服務之探討-以Google App Engine為例
建構金融機構SaaS服務之探討-以Google App Engine為例
Toomore
海峽西岸經濟區
海峽西岸經濟區
Toomore
Present Maps
Present Maps
Toomore
Analytics GAE - Plurk Avatar History 20090825-20090909
Analytics GAE - Plurk Avatar History 20090825-20090909
Toomore
MozTW Off-Line Paper at 2009
MozTW Off-Line Paper at 2009
Toomore
南區勞工課程-Picasa網路相簿
南區勞工課程-Picasa網路相簿
Toomore
Moztw 問卷調查
Moztw 問卷調查
Toomore
MozTW 離線報
MozTW 離線報
Toomore
More from Toomore
(18)
如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014
如何用 grs 擷取台灣上市股票股價資訊 PyCon APAC 2014
如何用 Twilio 發送 COSCUP 追殺簡訊
如何用 Twilio 發送 COSCUP 追殺簡訊
創業抬槓 20130831 分享 Pinkoi
創業抬槓 20130831 分享 Pinkoi
Toomore 20130627 Taipei.py
Toomore 20130627 Taipei.py
MOPCON Lightning Talk 閃電秀 用照片說故事 - 影像紀錄區
MOPCON Lightning Talk 閃電秀 用照片說故事 - 影像紀錄區
又一個誤聽 GAE 的悲劇
又一個誤聽 GAE 的悲劇
goristock in Coscup flash
goristock in Coscup flash
財務個案分析報告 尖美建設
財務個案分析報告 尖美建設
「兩岸簽訂Mou後,證券業之未來發展佈局」心得報告
「兩岸簽訂Mou後,證券業之未來發展佈局」心得報告
981金融機構與管理辯論報告(反對方)
981金融機構與管理辯論報告(反對方)
建構金融機構SaaS服務之探討-以Google App Engine為例
建構金融機構SaaS服務之探討-以Google App Engine為例
海峽西岸經濟區
海峽西岸經濟區
Present Maps
Present Maps
Analytics GAE - Plurk Avatar History 20090825-20090909
Analytics GAE - Plurk Avatar History 20090825-20090909
MozTW Off-Line Paper at 2009
MozTW Off-Line Paper at 2009
南區勞工課程-Picasa網路相簿
南區勞工課程-Picasa網路相簿
Moztw 問卷調查
Moztw 問卷調查
MozTW 離線報
MozTW 離線報
Recently uploaded
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
NCU MCL
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
黑客 接单【TG/微信qoqoqdqd】
20200323 - AI Intro
20200323 - AI Intro
Jamie (Taka) Wang
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
Jamie (Taka) Wang
20170104 - transaction_pattern
20170104 - transaction_pattern
Jamie (Taka) Wang
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
NCU MCL
20161220 - domain-driven design
20161220 - domain-driven design
Jamie (Taka) Wang
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
NCU MCL
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
NCU MCL
Entities in DCPS (DDS)
Entities in DCPS (DDS)
Jamie (Taka) Wang
20161027 - edge part2
20161027 - edge part2
Jamie (Taka) Wang
20151111 - IoT Sync Up
20151111 - IoT Sync Up
Jamie (Taka) Wang
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
NCU MCL
20200226 - AI Overview
20200226 - AI Overview
Jamie (Taka) Wang
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
NCU MCL
Recently uploaded
(15)
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
函數畫圖_習題6.pptx 函數畫圖_習題6.pptx 函數畫圖_習題6.pptx
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
买假和真英国驾驶执照买了假的英国驾照,那跟真的有什么区别吗?买假和真正的澳大利亚驾驶执照【微信qoqoqdqd】
20200323 - AI Intro
20200323 - AI Intro
20211119 - demystified artificial intelligence with NLP
20211119 - demystified artificial intelligence with NLP
20170104 - transaction_pattern
20170104 - transaction_pattern
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
函數微分_習題4.pptx 函數微分_習題4.pptx 函數微分_習題4.pptx
20161220 - domain-driven design
20161220 - domain-driven design
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題5.pptx 函數畫圖_習題5.pptx 函數畫圖_習題5.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
函數畫圖_習題7.pptx 函數畫圖_習題7.pptx 函數畫圖_習題7.pptx
Entities in DCPS (DDS)
Entities in DCPS (DDS)
20161027 - edge part2
20161027 - edge part2
20151111 - IoT Sync Up
20151111 - IoT Sync Up
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
SymPy 在微積分上的應用_5.pptx SymPy 在微積分上的應用_5.pptx
20200226 - AI Overview
20200226 - AI Overview
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
SymPy 在微積分上的應用_4.pptx SymPy 在微積分上的應用_4.pptx
KSDG Python and MongoDB for web
1.
Python + MongoDB
for Web 2012/10/04 KSDG Toomore 影像紀錄區 pi.isuphoto.org
2.
自我介紹 ●
Toomore [to●mor] [Blog.] – 義守大學財務金融系 研究所肄業 – Python (2009~) – 社群 ● MozTW[YouTube] / COSCUP2012 行政組 [YouTube] – 作品 ● goristock (2009) - goristock 台灣股市分析機器人 [YouTube] – Python + Google AppEngine http://goristock.appspot.com/ ● grs (2012) – 台灣上市股票價格擷取含即時盤 [YouTube] – grs PyPI http://pypi.python.org/pypi/grs – grs web http://grs.toomore.net/ 影像紀錄區 pi.isuphoto.org
3.
Agenda ●
影像紀錄區 ● 製作內容 – 2008 – Python ● PHP + MySQL + – Flask Apache – MongoDB – 2012 – Twitter-bootstrap ● Python + MongoDB + Nginx – Amazon S3 、 SES 影像紀錄區 pi.isuphoto.org 3/70
4.
2008 影像紀錄區 pi.isuphoto.org
4/70
5.
影像紀錄區
當時的版面 pi.isuphoto.org 5/70
6.
影像紀錄區
當時的地圖定位 pi.isuphoto.org 6/70
7.
影像紀錄區
當時的 Google Earth 定位 pi.isuphoto.org 7/70
8.
影像紀錄區
全台灣的地圖作品,很壯觀。 pi.isuphoto.org 8/70
9.
影像紀錄區
影像足跡,只有文字定位資訊,分享景點。 pi.isuphoto.org 9/70
10.
影像紀錄區
後端:定位介面 pi.isuphoto.org 10/70
11.
影像紀錄區
多國語系 正體→簡體,英文→日、韓 pi.isuphoto.org 11/70
12.
影像紀錄區
使用者管理頁面 pi.isuphoto.org 12/70
13.
2012 影像紀錄區 pi.isuphoto.org
13/70
14.
影像紀錄區 pi.isuphoto.org
14/70
15.
●
使用者功能選單 – 使用者頭像 – 觀看留言 – 積分狀況 – 設定 – 與 Facebook 連結 – 與 twitter 連結 – 登出 影像紀錄區 pi.isuphoto.org 15/70
16.
RSS 資訊(包含 geo
location 資訊) 影像紀錄區 pi.isuphoto.org 16/70
17.
地圖定位, KML 檔下載
影像紀錄區 pi.isuphoto.org 17/70
18.
●
EXIF – 讀取圖片資訊 – 光圈 – 快門 – ISO – 拍攝日期 – ... 影像紀錄區 pi.isuphoto.org 18/70
19.
●
作品授權 – C 版權所有 – CC 部份授權 – CC0 放棄版權 影像紀錄區 pi.isuphoto.org 19/70
20.
●
喜愛的作品 – 使用者對於其他人的作 品喜愛收藏。 影像紀錄區 pi.isuphoto.org 20/70
21.
●
上傳介面 – 上傳限制 ● Jpg 、 10MBs – 分類 – 作品內容 – 自訂標籤 Tag – 作品授權 ● C 、 CC 、 CC0 影像紀錄區 pi.isuphoto.org 21/70
22.
●
作品分類 – 風景:天空 / 大海 / 森林 – 人像: Model – 黑白:黑與白 – 膠捲:底片 /LOMO – 創作:設計 / 圖文 / 手繪 – 文化:人文 / 地方 / 新聞 – 動物:貓 / 狗 – 植物:花 / 草 / 樹木 – 美食:食物 / 擺盤 影像紀錄區 pi.isuphoto.org 22/70
23.
●
作品集 影像紀錄區 pi.isuphoto.org 23/70
24.
Python 影像紀錄區 pi.isuphoto.org
25/70
25.
Python ●
初接觸 Python – 2009 年為了使用 Google AppEngine 學的。 – 簡單易學 ● 《 Python 學習手冊》 – 程式碼可讀性高 ● 強制縮排 – Script language ● 簡單腳本處理 ● 實驗小程式 影像紀錄區 pi.isuphoto.org 26/70
26.
Python for web ●
Web Framework – Django – Flask – … (參考: http://wiki.python.org/moin/WebFrameworks) ● Platform – Google AppEngine – Heroku 影像紀錄區 pi.isuphoto.org 27/70
27.
Flask ●
Flask – Microframework 輕量級框架 – 整合 Werkzeug 、 Jinja2 兩個套件 ● Werkzeug ( WSGI utility library ) ● Jinja2 ( template engine ) 影像紀錄區 pi.isuphoto.org 28/70
28.
Flask ●
Flask – 實作 RESTful URL Ref. ● REST : Roy Fielding 2000 提出的一個架構風格。 – 『設計良好的網路應用表現為一系列的網頁,這些網頁可以看作 的虛擬的狀態機,用戶選擇這些連結導致下一網頁傳輸到用戶端 展現給使用的人,而這正代表了狀態的轉變。』 - Ref. ● RESTful : – GET http://pi.isuphoto.org/post/4 – GET http://pi.isuphoto.org/post/4/exif – POST http://pi.isuphoto.org/post/4/delete – GET http://pi.isuphoto.org/toomore – GET http://pi.isuphoto.org/toomore/shutter ● PUT/DELETE 在 HTML5 將被移除。 影像紀錄區 pi.isuphoto.org 29/70
29.
Flask ●
Flask – 實作 RESTful URL Ref. ● POST http://pi.isuphoto.org/post/4 影像紀錄區 pi.isuphoto.org 30/70
30.
Flask ●
Flask 其他資源 – Flask extensions [URL] ● 擴充套件 ● Flask-Cache ● Flask-Gravatar – Flask snippets [URL] ● 使用技巧 tips ● SSL for particular views [URL] ● Simple Authorization [URL] 影像紀錄區 pi.isuphoto.org 31/70
31.
Flask ●
Flask 支援 WSGI – WSGI ? ● Web 伺服器網關介面( Python Web Server Gateway Interface , WSGI ) ● Python 定義一個伺服器與網頁框架簡單的溝通介面。 ● PEP 3333 [URL] – Werkzeug ( WSGI utility library ) ● 範例: python ./app.py 影像紀錄區 pi.isuphoto.org 32/70
32.
uWSGI ●
[uWSGI] [URL] – 處理與 Nginx 溝通 – 效能 [Ref.] ● [uWSGI] Top3 理由很弱,只因為效能好… 影像紀錄區 pi.isuphoto.org 33/70
33.
uWSGI→nginx ●
[uWSGI] – uwsgi -s /Xweb/pi/pi.sock -d /var/log/uwsgi_pi.log --pythonpath /web/pi -w app:app ● [nginx] – server{ – listen 80; – server_name pi.isuphoto.org; – location / { – Include uwsgi_params; uwsgi_pass unix: /Xweb/pi/pi.sock;} 影像紀錄區 pi.isuphoto.org 34/70
34.
nginx ●
[nginx] .conf – 4 核心,讓大家都有事情做: ● worker_processes 4; ● worker_cpu_affinity 0001 0010 0100 1000; – Gzip on 影像紀錄區 pi.isuphoto.org 35/70
35.
MongoDB 影像紀錄區 pi.isuphoto.org
36/70
36.
MongoDB ●
MongoDB – NoSQL ● 不同於傳統的關係式資料庫 – Memory-mapped ● 32bit 2G limit. → 64bit – Schema free ● {'name': 'toomore', 'age': 27} ● {'name': 'toomuch', 'loc': 'Taiwan', 'tel': '0800123123'} 影像紀錄區 pi.isuphoto.org 37/70
37.
MongoDB
MySQL 與 MongoDB 對應名稱 MySQL MongoDB database database table collection row document 更多參考資料: http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart 影像紀錄區 pi.isuphoto.org 38/70
38.
MongoDB ●
選擇 database – > show dbs – > use test ● 選擇 collection – > db.getCollectionNames() – ['ksdg', 'system.indexes', '...'] ● 列出所有資料 – > db.ksdg.find() – {...} 影像紀錄區 pi.isuphoto.org 39/70
39.
MongoDB ●
> u = {'name': 'toomore', 'loc': 'kaohsiung'} ● 新增 – > db.ksdg.save(u) ● 修改 / 更新 – > db.ksdg.update(u, {'$set': {'loc': 'TW'}}) ● 刪除 – > db.ksdg.remove({'name': 'toomore'}) ● 尋找 – > db.ksdg.find({'name': 'toomore'}) 影像紀錄區 pi.isuphoto.org 40/70
40.
MongoDB ●
ObjectId [Ref.] – > db.ksdg.find() – – ● 一組 16 進位的字串 – 兩兩一組 python– >>> from datetime import datetime 1349256546 – >>> datetime.fromtimestamp(int('506c0562', 16)) – datetime.datetime(2012, 10, 3, 17, 29, 6) 所以理論上來說,不需要額外設定一欄位存放時間 紀錄,可以從 ObjectId 解析時間。 影像紀錄區 pi.isuphoto.org 41/70
41.
MongoDB Index ●
.explain() 檢查 find 的運作 由 explain 觀察 scan 資料的行為,未建 立 Index 時是掃描所有資料。 影像紀錄區 pi.isuphoto.org 42/70
42.
MongoDB Index ●
Index [Ref.]: .ensureIndex() 由 explain 觀察 scan 資料的行為,發現 以 BtreeCursor 方式 scan 資料。 影像紀錄區 pi.isuphoto.org 43/70
43.
MongoDB Index
● Index [Ref.]: .stats() – Stats(1024) : byte → KB 更多參考資料: http://www.mongodb.org/display/DOCS/Moni toring+and+Diagnostics 影像紀錄區 pi.isuphoto.org 44/70
44.
MongoDB GeoIndex ●
Geospatial Indexing [Ref.] : – 地理座標索引 ● { loc : [ 50 , 30 ] } //SUGGESTED OPTION ● { loc : { lon : 40.739037, lat: 73.992964 } } – 建立索引 ● db.places.ensureIndex( { loc : "2d" } ) – 搜尋 ● db.places.find( { loc : [50,50] } ) ● db.places.find( { loc : { $near : [50,50] } } ) ● db.places.find( { loc : { $near : [50,50],$maxDistance : 5}}) 影像紀錄區 用在 作品定位 欄位的資料為 GeoIndex 格式。 影像紀錄區 pi.isuphoto.org 45/70
45.
MongoDB TTL ●
TTL ( Time to live ) [URL.] – 2.2 新功能 – 在 ensureIndex 新增 expireAfterSeconds 參數 – 每分鐘 mongod 檢查一次,指定的欄位必須為時間 屬性的 BSON 資料格式。 ● 範例: 1800 秒後刪除 – db.ksdg.ensureIndex({'date': 1}, {expireAfterSeconds: 1800}) – db.ksdg.save({'user': 'toomore', 'date': New Date()}) 影像紀錄區 用在 忘記密碼 時取得有時效性 的 Token. 讓使用者限時內重新設定密碼。 影像紀錄區 pi.isuphoto.org 46/70
46.
MongoDB Master-Slaves ●
主從式架構 – 設定請參考 ● http://www.mongodb.org/display/DOCS/Master+Slave ● 影像紀錄區 – 使用 1 Master (R/W) + 2 Slaves (R) – 有時 M/S 會來不及同步,重要的資料會強制指向 Master 存 / 取資料。 Master Slaves Slaves MongoDB 影像紀錄區 pi.isuphoto.org 47/70
47.
MongoDB 參考資料 ●
TechTalk@TW: 專訪 Episode 4 – MongoDB: – FlipTop 採用 MongoDB 的經驗、 Amazon EC2 、 sharding 。 – http://www.techtalk.tw/2012/02/episode-4- mongodb.html ● MyNoSQL – 關於 NoSQL 的文章蒐集 – http://nosql.mypopescu.com/tagged/mongodb 影像紀錄區 pi.isuphoto.org 48/70
48.
twitter-bootstrap 影像紀錄區 pi.isuphoto.org
49/70
49.
twitter-bootstrap 影像紀錄區 pi.isuphoto.org
50/70
50.
twitter-bootstrap ●
Front-end framework – 方便快速建立前端網頁樣式。 – Responsive layout – twitter 風格的 CSS 、 javascript ● 缺點:如果不客製化調整,會到處撞衫。 – 建立客製化的 LESS 檔,再用 Node.js 編譯新的 twitter- bootstrap – LESS 設定參考: http://twitter.github.com/bootstrap/extend.html – 或 線上自訂樣式: http://twitter.github.com/bootstrap/customize.html 影像紀錄區 pi.isuphoto.org 51/70
51.
其他套件 影像紀錄區 pi.isuphoto.org
52/70
52.
其他套件 ●
Python 來不及詳細介紹,但他們都是默默工 作的套件。 – PIL :處理圖片縮圖。 – pyexiv2 :解析圖片 EXIF 資訊。 – boto :與 Amazon AWS 溝通。 ● S3 :上傳圖片 ● SES :傳送郵件通知、電子報發送…。 – Celery : task 排程。 – pymongo :驅動 MongoDB 。 – requests :處理 Facebook 、 twitter API 。 – fabric : SSH / Deploy 影像紀錄區 pi.isuphoto.org 53/70
53.
其他套件 ●
Front-end web – YUI ● compress both JavaScript and CSS files ● http://yuilibrary.com/download/yuicompressor/ – Font Awesome ● iconic font 字型圖示,放大縮小不會變形 ● http://fortawesome.github.com/Font-Awesome/ 影像紀錄區 pi.isuphoto.org 54/70
54.
架構圖
SES S3 Amason Script : 電子報、郵件通知 Social Network : Facebook 、 twitter Slaves tb* 分享照片 Master Flask uWSGI nginx mongoDB Pymongo python Linode 影像紀錄區 - tb* : twitter-bootstrap pi.isuphoto.org 55/70
55.
影像紀錄區 pi.isuphoto.org
56/70
56.
影像紀錄區
現況與未來 影像紀錄區 pi.isuphoto.org 57/70
57.
緣起 ●
影像紀錄區 在 義守大學攝影社 (2006) 是一個讓 社員分享作品與切磋攝影技術的平台。 ! ● 當時偷偷架在財金系主機,與系網頁共享資源。 ● 2009 年主機被雷劈,資料有救回來,但偷放在 系上主機的事情也被發現。之後也找不到主機就 一直擱置到現在。 ● 到 2012 年 5 月重新製作上線… 影像紀錄區 pi.isuphoto.org 58/70
58.
現況 ●
會員 – 第一批使用者:歷屆攝影社社員。 – 開放申請:逐步審核(有 攝影作品) – 未來:找攝影團體推薦平台。 ● 實際參考數據 (2012/5 ~ 2012/10) – 使用 / 註冊: 40 / 59 – 作品數: 648 – 作品瀏覽人次: 31,434 – 網站停留時間: 00:06:16 – 跳出率: 51.85% 影像紀錄區 pi.isuphoto.org 59/70
59.
實驗功能 明信片 ●
近期實驗功能:印製明信片 影像紀錄區 pi.isuphoto.org 60/70
60.
實驗功能 明信片 ●
明信片 – 作品實體輸出的可能模式 ● 攝影師自己下單印製。 ● 攝影師設定作品單價,販售明信片。扣除印製成本與抽 成,盈餘歸攝影師所有。 ● 或是直接與 hypo 、點點印 接資訊流,將攝影師導引過去 下單製作。 – 小結:獲利空間可能不大,但可成為一個附加服務。 影像紀錄區 pi.isuphoto.org 61/70
61.
實驗功能 攝影履歷 ●
近期實驗功能:攝影履歷 [URL.] 影像紀錄區 pi.isuphoto.org 62/70
62.
實驗功能 攝影履歷 ●
攝影履歷 – 提供有接案的攝影師一個接洽的頁面。 ● 拍攝風格 ● 攝影器材 ● 作品案例 – 小結:希望扮演媒合的角色,讓有攝影拍攝需求的人 到 影像紀錄區 尋找屬意風格的攝影師。 影像紀錄區 pi.isuphoto.org 63/70
63.
實驗功能 粉絲專頁 ●
近期實驗功能:粉絲專頁 [URL.] 影像紀錄區 pi.isuphoto.org 64/70
64.
實驗功能 粉絲專頁 ●
粉絲專頁 – 主要作為網站宣傳 或 與非會員互動的地方。 ● 非會員:尚未成為影像紀錄區攝影師,但希望持續關注影 像紀錄區。 – 功能需求發現區。 ● 例如:(右圖) – 不定時發文 ● 特色作品介紹 ● 攝影師介紹 ● 攝影活動、新聞 影像紀錄區 pi.isuphoto.org 65/70
65.
夥伴尋覓 ●
需要的人員 – CEO *** ● 需要一個可以帶領 / 指引我們方向或是建議的大大。 – 行銷公關 *** ● 目標客群:攝影團體 ● 外拍活動、網站說明活動 – 技術人員 * ● Python... 影像紀錄區 pi.isuphoto.org 66/70
66.
大致上是這樣…
(突然變謙虛) 影像紀錄區 pi.isuphoto.org 68/70
67.
最後再說一個小故事 影像紀錄區
我也拍過 yumi , 2008 年攝影作品金牌 [IMG.] pi.isuphoto.org 69/70
68.
Thanks~ 影像紀錄區 pi.isuphoto.org
70/70
Download Now