@classmethod def _thread(cls): pygame.init() pygame.camera.init() SIZE = (640, 480) camlist = pygame.camera.list_cameras() if not camlist: print('No camera device existed!') cam = pygame.camera.Camera(camlist[0], SIZE) cam.start() capture = True while capture: if not cam.query_image(): continue screen = cam.get_image() srcdata = pygame.image.tostring(screen, 'RGB') img = Image.fromstring('RGB', SIZE, srcdata) stream = io.BytesIO() img.save(stream, 'JPEG') # store frame stream.seek(0) cls.frame = stream.read() # reset stream for next frame stream.seek(0) stream.truncate() # if there hasn't been any clients asking for frames in # the last 10 seconds stop the thread if time() - cls.last_access > 10: break cls.thread = None cam.stop() pygame.quit()
11.29.2015
Video Streaming with Flask + pygame.camera
10.02.2015
Umbrello has no icon in Linux Mint 17.1
sudo apt-get install kdelibs-bin kdelibs5-data kdelibs5-plugins kdelibs-bin kdelibs5-data kdelibs5-plugins oxygen-icon-theme
10.01.2015
UML Modeling Software
今天試了幾個uml的軟體,如下所示:
測試的目的是要看看那一套值的購買,而主要的需求是可針對C#語言做正逆向工程(從類別圖產生原始碼、從現有原始碼產生類別圖)就夠了4,Visual Studio企業版雖然是更好的選擇(可直接產生Sequence Diagram),但是太貴了啊…
下列這三個軟體看起來都是StarUML過來的
- StarUML 2
- WhiteStarUML
- Sinvas UML
用spy++看了一下,好像是用CEF(Chromium Embedded Framework)寫出來的,它還可以顯示
類似寫網頁時除錯(?)的介面,沒有試是否可以馬上更新Render。
試用了一下,雖然它的介面相較 v 1的版本有大幅度的改變,但是用起來仍可以很快上手,而正逆向功能基本上也ok,售價也還可以。
WhiteStarUML和原先的StarUML在介面上仍然是一樣,只是我一直沒辦法正確的匯入程式碼,但是要純畫圖還是可以接受,而它的編譯環境仍然是Delphi,只是更新到新版的了,XE以上應該都能夠編譯,只是要裝幾個要外部的元件。
Sinvas UML是SINVAS中的一套軟體,SINVAS是一套Full Life-Cycle of software Development,聽起像是微軟的ALM。
Sinvas UML看起來可能是使用Qt開發的,在Spy++看到的是視窗class name是Qt5QWindowIcon,或許它之後可以跨平台使用?Anyway, 它有提供Community Edition,在此前提下它是提供最多Modeling diagram的環境了,比等一下提到的Software Ideas modeler還多,連基本的MDA功能也有提供,當然它的C#匯出匯入也是ok的。
Argo UML及Astah都是Java based的環境,使用上都正常,但是Argo UML已經很久沒有更新了了了,而Astah老是看到 [Paid]的提示(雖然可以關掉),而且7.0版後不再允許商業使用了!!!還好6.9還ok…,所以就略過這兩套的介紹吧。
但,沒有Genrate Code及Reverse Engineer,專業版才有,不過在使用後覺得是可以考慮購買的。
EA就不用介紹了,有錢的選擇,但是它的選單的字型真的小了一點,英文不好找不到地方可以變大,只能調整系統的字型顯示…。
以上列出的都能夠滿足基本上的使用需求,但是也沒辦法要求一套通吃,像是畫MindMap,software ideas modeler就是比XMind難畫,但XMind畫流程圖也不是很順手,只能依需求換軟體了。
個人意見
軟體 | 介面 | 快速上手 | 功能 | 支援的圖 |
StarUML 2 | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★☆☆☆ |
WhiteStarUML | ★★★☆☆ | ★★★☆☆ | ★★☆☆☆ | ★★☆☆☆ |
Sinvas UML | ★★★★☆ | ★★★☆☆ | ★★★☆☆ | ★★★☆☆ |
Software Ideas(personal edition) | ★★★★☆ | ★★★★☆ | ★★☆☆☆ | ★★★☆☆ |
EA | ★★★☆☆ | ★★★☆☆ | ★★★★☆ | ★★★★☆ |
2.26.2015
Model View Presenter
之前有概略看過一次UI Design Using Model-View-Presenter這篇文章,現在正在試著加入單元測試的功能,又詳細的看了一遍,發覺目前實作的專案,雖說也是使用MVP pattern來實作,不過在切的時候還是有些地方沒有思考清楚就做了。
目前專案中有類似此範例的情況,也是要載入客戶,然後依據選擇的客戶載入其中所有的產品,之前切分的IView介面中,所有的事件都是由UI端觸發的,而大部份的屬性都有 get, set,但其實有的property是不需要set或get的,有的動作應該是由presenter來實作,卻交由UI端觸發,還很高興自己又學會了一種模式@@
而在範例中它切出的View的介面,就很清楚的可以知道那些是由UI端發生的動作,那些是由presenter根據狀況回寫到UI端,且單元測試的部份也寫的簡單又清楚,正適合目前這個階段的學習。
Enum localization, 多國語系
試了兩種方式
2. Data Binding an Enum with Descriptions
第一種是使用TypeConverter的方式,在Enum GetValue時傳回需要的語系字串,
第二種則是使用自訂的Attribute,然後使用自訂的class來取得字串,當然它也實作了enum的擴充函式,
不過在一一比較網路上的文章後,一開始是試著使用第一種方式,不過問題來了,由於目前的專案是試著實作MVP的方式,大部份的class都是定義在Model Library中,跟著enum的定義也放在那邊,而第一種方式它的TypeConverter類別的建構式需要傳入Properties.Resources.ResourceManager(語系放在資源檔中), 如果要含入View主專案,會形成環狀相依,最先是想把Converter類別轉成static後在專案一開始指定ResourceManager給它,不過要改很多,後來就直接使用第二種方式,只是不再使用Attribute定義,直接使用它的ToList等方式指定給目的控制項的DataSource…
2.17.2015
Action List
很久以前有找過,因為C#竟然沒有這種好東西
新的Fork ActionListWinForms
昨天測試發現以上有兩種不同的實作,之後再看那一種比較方便…又或是以後轉用WPF好了,至少有類似的pattern,或是再配和ReactiveUI來測
另外又不知道為什麼找到了多國語系的資料庫實作方式
http://www.west-wind.com/presentations/wwDbResourceProvider/
Reactive Extensions(Rx), ReactiveUI
其實一開始是要找State Machine的實作的…
Working with State Machines in the .NET Framework
使用 State Pattern 實作的簡單範例
試了一下,簡潔、有力!stateless 的介紹及簡單的sample
另一種實作?還沒試用…
---
找一找不知道為什麼就找到Reactive Extensions了
Make Async Your Buddy With Reactive Extensions
又試了ReactiveUI
專案原先是試著使用MVP模式來實作,之後或許可以試著使用ReactiveUI,只是文件真的太少了…只能看幾個在GitHub上提供的sample程式
最後,花了一天在不同的東西上,想要解決的問題是和機台的通訊及等待動作的流程控制…
1.12.2015
1.11.2015
M500 Raid 0 failed when install windows os
Motherboard : ASRock 890gx extreme 3
OS ver : windows 7 x64, 9 ? , 10 ? , couldn’t find disk in install progress even I use driver from motherboard’s official Site.
then try install ubuntu-mate, done !
but meet the grub failed at the end of the install, lucky found a solution, and repair ok.
My next SSD won’t be Crucial anymore…