11.29.2015

Video Streaming with Flask + pygame.camera

This code is based on Video Streaming with Flask
    @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()

10.02.2015

Umbrello has no icon in Linux Mint 17.1

在裝完Umbrello後,發覺軟體上所有的 icon都不見了,後來從Terminal執行才發現有顯示standard icon theme "oxygen" not found!,解法如下:
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的軟體,如下所示:

image

測試的目的是要看看那一套值的購買,而主要的需求是可針對C#語言做正逆向工程(從類別圖產生原始碼、從現有原始碼產生類別圖)就夠了4,Visual Studio企業版雖然是更好的選擇(可直接產生Sequence Diagram),但是太貴了啊…

下列這三個軟體看起來都是StarUML過來的

  • StarUML 2
  • WhiteStarUML
  • Sinvas UML

StarUML 2

image StarUML 2的介面

用spy++看了一下,好像是用CEF(Chromium Embedded Framework)寫出來的,它還可以顯示

image 類似寫網頁時除錯(?)的介面,沒有試是否可以馬上更新Render。

試用了一下,雖然它的介面相較 v 1的版本有大幅度的改變,但是用起來仍可以很快上手,而正逆向功能基本上也ok,售價也還可以。

WhiteStarUML

image

WhiteStarUML和原先的StarUML在介面上仍然是一樣,只是我一直沒辦法正確的匯入程式碼,但是要純畫圖還是可以接受,而它的編譯環境仍然是Delphi,只是更新到新版的了,XE以上應該都能夠編譯,只是要裝幾個要外部的元件。

Sinvas UML

image

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…,所以就略過這兩套的介紹吧。

software ideas modeler

image 介面最最好用的,個人使用免費

但,沒有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, 多國語系

試了兩種方式

1. Localizing .NET Enums

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#竟然沒有這種好東西

舊的ActionList for .NET 2.0

新的Fork ActionListWinForms

Codeplex 上的另一個實作

昨天測試發現以上有兩種不同的實作,之後再看那一種比較方便…又或是以後轉用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

試了一下,簡潔、有力!stateless 的介紹及簡單的sample

solid-state

另一種實作?還沒試用…

---

找一找不知道為什麼就找到Reactive Extensions

Why Rx?

Make Async Your Buddy With Reactive Extensions

Reactive Extensions入門

又試了ReactiveUI

專案原先是試著使用MVP模式來實作,之後或許可以試著使用ReactiveUI,只是文件真的太少了…只能看幾個在GitHub上提供的sample程式

最後,花了一天在不同的東西上,想要解決的問題是和機台的通訊及等待動作的流程控制…

1.12.2015

Youtube SME版權…

突然想聽 Glee 的 If I die young, 點了才發現被刪了, 之後都要先下載才行了…

還好YOUKU找到…不然就聽小雞嗶嗶好了

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…