Windows Live Writer 改名 Open Live Writer 開放原始碼

 

2015年底微軟開放了,這篇文章正是透過新版Open Live Writer寫成的,接下來就是看看到底會被眾人放棄,還是外掛滿天飛獲得空前的支持。

擦亮眼睛看著呢。

[+/-] 繼續閱讀...

NodeJS for windows 失敗

node01.JPG
node01.JPG

NodeJS很好用,跟Python的概念很類似,只差在語法的差異,所以如果有需要也能好好利用他。

維持我一貫的作法,最好是能免安裝、可攜式,安裝結果很失敗,失敗在npm的安裝上,但反正不急所以先記錄一下以後再繼續....。

首先我的系統是Win7 64bit,遇到的錯誤就如圖片所示,安裝過程如下:

  • http://nodejs.org/dist/v0.6.13/去下載node.exe、node.lib、node.pdb三個檔案放到node目錄下。
  • http://code.google.com/p/msysgit/downloads/list?can=3下載PortableGit-1.7.9-preview20120201.7z,解壓縮放在node/git下。
  • 在node/git裡執行git-cmd.bat便會完成Git環境設定並開啟一個命令窗。
  • 切換目錄 cd .. 到node。
  • 設定node環境set path=%PATH%;%CD% 如果想要永久寫入win環境設定,再下一個指令 setx path "%PATH%"。
  • 開始安裝npm。
  • git config --system http.sslcainfo /bin/curl-ca-bundle.crt
  • git clone --recursive git://github.com/isaacs/npm.git
  • cd npm
  • node cli.js install npm –gf

到此就出現錯誤了,整個npm裡的檔案全被清空,所以也就沒機會繼續使用npm安裝模組了(例如 npm install socket.io),把NodeJS x86跟x64都試過都一樣,下次再找XP試試看如何?

[+/-] 繼續閱讀...

VRAY RT變數設置

V01.JPG
V01.JPG

聽說VRAY2.0已經支援及時渲染Realtime Render(Vray RT)當然得來試試,尤其有一塊Nvidia 430顯卡,結果竟然給我出現錯誤,就是不給我使用GPU渲染。

查了一下資料,變數沒設置?那就到控制台 / 系統 / 環境變數 下去幫他新增一個VRAY_OPENCL_DEVICES變數,數值給他設為0,如果有兩塊顯卡第2塊ID是1,所以設為0就是告訴他使用第一塊顯卡,若兩塊都要使用就設為0,1即可。

V02.JPG
V02.JPG

再一次檢查看看,錯誤訊息消失了,可以正常使用。

[+/-] 繼續閱讀...

python開發APP(二)用pythonCard增加開發效率

python開發APP(一) GUI 裡使用了wxPython來開發GUI介面,但很快便會發現 wxPython 的程式碼十分繁瑣而且缺乏好用的佈局工具,剛好 pythonCard 補足了這方面的一點缺陷。下載後安裝的方法很簡單,一樣是 python setup.py install 這個指令即可,但需要注意的是 pythonCard 是架構在wxPython之上,所以在安裝順序上得先確定已經安裝wxPython後再安裝pythonCard才不會發生錯誤。

pythonCard01.JPG
pythonCard01.JPG

安裝後就有方便的佈局工具可以用了,到python目錄下Lib\site-packages\PythonCard\tools\resourceEditor 執行 resourceEditor.py (也可以把這檔案做個捷徑方便使用)就會看到如左圖的畫面,左上角是佈局工作,右下角是佈局元件的屬性編輯工具,這樣的畫面是不是跟很多高級IDE工具很像,比wxPython實在是方便很多,對於開發效率更是提升不少。

 

pythonCard02.JPG
pythonCard02.JPG

除了工具以外,pythonCard也提供了大量方便的範例程式讓使用者方便參考使用,只要到python目錄下Lib\site-packages\PythonCard\samples 目錄下執行 samples.pyw 就可以看到像左邊畫面的工具,除了有原始檔案還可以試著直接執行關看結果。

接下來實做一下簡單例子,做一個讓文字框在點擊按鈕後可以顯示跟文字輸入框一樣的文字,大概拉出像以下的畫面並儲存成 PyCardTest.rsrc.py 即可,順便看看內容如何?

{'application':{'type':'Application',
'name':'Template',
'backgrounds': [
{'type':'Background',
'name':'bgTemplate',
'title':'Standard Template with File->Exit menu',
'size':(487, 162),
'style':['resizeable'],

'menubar': {'type':'MenuBar',
'menus': [
{'type':'Menu',
'name':'menuFile',
'label':'&File',
'items': [
{'type':'MenuItem',
'name':'menuFileExit',
'label':'E&xit',
'command':'exit',
},
]
},
]
},
'components': [

{'type':'TextField',
'name':'go',
'position':(10, 51),
'size':(417, -1),
},

{'type':'Button',
'name':'Button1',
'position':(353, 7),
'label':u'\u78ba\u5b9a',
},

{'type':'TextField',
'name':'Name',
'position':(60, 8),
'size':(273, -1),
'text':u'Input your Name',
},

{'type':'StaticText',
'name':'StaticText1',
'position':(10, 10),
'text':u'\u540d\u5b57',
},

] # end components
} # end background
] # end backgrounds
} }

pythonCard03.JPG
pythonCard03.JPG

PyCardTest.rsrc.py 程式碼相當簡單,看不看其實都沒啥咪差,但稍微瞭解一下內容架構也不算是壞事。


接下來就是如何應用它了,先建立一個同名擋案 PyCardTest.py 放在同目錄下,這個檔案就是我們要撰寫邏輯控制程式碼的地方,首先要導入GUI,所以會有固定的格式如下顯示。


 


from PythonCard import model

class MyBackground(model.Background):

def on_initialize(self, event):
pass

if __name__ == '__main__':
app = model.Application(MyBackground)
app.MainLoop()

接下來要幫按鈕加上功能,在上面的程式碼class裡加上一個是件綁定的方法。

    def on_Button1_mouseClick(self,event):
self.components.go.text = self.components.Name.text

儲存後試著執行PyCardTest.py就可以看到完整功能的應用程式了。


如果要給別人使用當然得封裝一下,那就使用一下py2exe來編譯,果然按照之前的方法馬上就出錯失敗,問題是出在元件沒有被一起封裝進來。得稍微修改一下py2setup.py內容



from distutils.core import setup
import py2exe

#setup(console=['PyCardTest.py'])

import os
# find pythoncard resources, to add ad 'data_files'
pycard_resources = []
for filename in os.listdir('.'):
if filename.find('.rsrc.') > -1:
pycard_resources += [filename]

# includes for py2exe
includes = []
for comp in ['button', 'image', 'staticbox', 'statictext',
'textarea', 'textfield', 'passwordfield']:
includes += ['PythonCard.components.' + comp]
print 'includes', includes

setup(
windows = [
{
"script": "PyCardTest.py",
}
],
options = {
"py2exe": {
"optimize": 2,
"compressed": 1,
"includes": includes,
}
},
)

如此就可以成功產生exe執行檔,再把PyCardTest.rsrc.py 複製到同目錄就依竊OK了。


[+/-] 繼續閱讀...

Ruby on Rails 開始在 Win7

正規的教學裡摸索Ruby實在有點累,甚至難以一窺全貌,Rails其實有點像是Django一樣的MVC框架,所以兩者也有其相似之處(使用上的邏輯思考)。看了很多如何開始的文章,對於Ruby的安裝上實在不是很適合我(喜歡免安裝、帶著走),所以決定從InstantRails下手,首先到官網去下載InstantRails,這樣就可以開始對Ruby開始動手動腳了。

這裡下載InstantRails-2.0-win.zip這個檔案來解壓縮(隨便你喜歡放在哪),從目錄架構來看,它是利用了Apache+PHP+MySQL的基礎,所以你可以執行InstantRails.exe 後看到Apache和MySQL便被啟動,如果點擊最上方左邊按鈕就可以進入Ruby的管理介面,如下圖。

ruby01.JPG
ruby01.JPG

既然使用的是AMP架構,也就是說你也可以單純把它當作一個Web Server來使用,在瀏覽器輸入http://127.0.0.1/ 就會看到網頁顯示出來,而這個網頁是放在www的子目錄下。

Ruby程式是放在ruby子目錄下,而rails_apps這個子目錄就是將來我們要開發的專案存放區,當你進入rails_apps子目錄後會看到底下子目錄名稱剛好跟左圖 Rails Applications一樣。

可以點擊Create New RailsApp…按鈕打開DOS視窗,輸入指令 rails <專案名稱>,再回到管理視窗點擊Refresh List按鈕就可以看到剛才建立的專案名稱,勾選起來後再點擊Start with Mongrel按鈕開始執行剛才的專案。用瀏覽器開啟 http://127.0.0.1:3000/ 後就會發現專案網頁啟動了。

ruby02.JPG
ruby02.JPG

而其中如果要改變port的設定就是到 Configure Startup Mode… 按鈕裡面去更改設定。

如果要手動來啟動專案則到剛才的DOS視窗進入專案名稱子目錄下輸入 ruby script/server 便可以啟動,啟動後跟Pyton一樣可以隨時修改程式碼卻不必再重新啟動而直接套用。

注意:啟動專案跟Apache是沒關係的,就算把Apache停止掉也不影響。

到此為止一個專案的基本架構已經完成,在專案目錄下可以看到一個 app 子目錄,底下有四個子目錄controllers、helpers、models、views就是MVC架構的分類,跟Django十分類似。

繼續為我們的專案添加功能,下指令 ruby script\generate controller MyTest01 就會像下圖一樣,幫你建立一些功能檔案。

ruby03.JPG
ruby03.JPG

 

 

到 app\views\my_test01 目錄下建立 index.html.erb 檔案,內容如下:

 

 

<html>
 <head>
   <title>Hello World 我的第一個頁面</title>
  </head>
<body>
  <h1>Hello World 我的第一個頁面</h1>
</body>
</html>

基本上這算是一個輸出網頁,但Ruby其實還不知道該如何輸出它,接下來到剛才產生的 app\controllers\my_test01_controller.rb 檔案做編輯修改:


class AppController < ApplicationController
def index

end
end

這裡 def index 定義了index的細部功能,然後套用views下的視圖,這樣在瀏覽器下輸入 http://127.0.0.1:3000/my_test01/indexhttp://127.0.0.1:3000/my_test01/ 都可以看到"Hello World 我的第一個頁面" 這一段文字了。


有了以上Ruby運行環境的基礎概念,接下來就可以開始測試學習更深入的語法了。

[+/-] 繼續閱讀...

Tomcat 在Win7下使用

首先得要有tomcat,到tomcat官網下載最新版,這裡下載的是tomcat 7 的64-bit Windows zip (pgp, md5),因為我的環境是Win7 64bit,JAVA 64bit,所以當然使用64bit tomcat的ZIP(免安裝)。

把壓縮檔解壓縮得到一個apache-tomcat-7.0.21目錄,暫時隨便你放在哪都行,免安裝就是要有強大的可攜性(除非必要不使用絕對路徑),再到目錄下的bin子目錄執行startup.bat,如果無法順利執行或告訴你找不到JAVA_HOME那就編輯 startup.bat 裡加上 set "JAVA_HOME=C:\Program Files\Java\jre6" 這一句指定JAVA的所在目錄(這就是不得已的絕對路徑),再一次執行 startup.bat 就會看到執行畫面。

tomcat_run.JPG
tomcat_run.JPG

Tomcat 目錄架構

  • bin          Tomcat程式相關指令
  • conf         Tomcat設定檔
  • lib           Tomcat  jar函式庫
  • logs         日誌檔
  • temp        存放暫存檔
  • webapps   網頁程式存放目錄
  • work         存放編譯好的Servlet

 

打開瀏覽器 http://127.0.0.1:8080 就可以看到網頁顯示,而顯示的內容來自 webapps\ROOT ,如果要看他自帶的的範例則在網址後加上 examples 就會看到 webapps\examples 的內容。

重點是要在網頁上管理tomcat就要輸入 http://127.0.0.1:8080/manager 結果是要你輸入帳號密碼,但不管輸入啥咪都沒用也沒任何提示,此時就要到 conf 子目錄下去編輯 tomcat-users.xml 擋案,在 <tomcat-users> 節點裡加上以下設定:

  <role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

重新啟動tomcat後再一次進入管理介面,使用admin帳號就可以看到一切了。


tomcat_manager.jpg
tomcat_manager.jpg

[+/-] 繼續閱讀...

打造一個可攜GAE開發環境

在正常情況要開發GAE APP並不需要這麼麻煩,只要照著google的說明一步步安裝就能很輕鬆打造出一個GAE的開發環境。但事情如果都能如此單純就是最好不過的,但偏偏常會碰到系統已經安裝好python卻偏偏不是32位元或者2.5版,這樣在將來的開發過程就不難保證會碰上問題,而且如果要到其他電腦下繼續工作,難道還要在花一次精神與時間去佈署嗎?

為了應付以上問題以及讓開發環境單純,現在就開始來打造一個可攜環境吧,反正python以及GAE都不是標準的Windows程式所以在安裝過程並不會給你亂COPY檔案到你想都想不到的地方。

  • 找個乾淨的windows系統開始安裝python 2.5版以及GAE SDK(寫文章此時是1.5.3版)。
  • 如果害怕將來安裝完後會有一堆你看不懂的檔案留在你的系統裡,可以先安裝影子系統,然後打開虛擬環境再開始上面步驟。
  • 設一個目錄PortableGAE然後把Python25目錄及google_appengine目錄都移到PortableGAE目錄裡。
  • 到 \PortableGAE\google_appengine\launcher 下GoogleAppEngineLauncher.exe檔案按右鍵複製,再到 \PortableGAE 下去貼上捷徑,再去編修這個捷徑檔裡的絕對路徑都更改成相對路徑。
  • 接下來執行剛才建立的捷徑檔案。



  • 001
  • 點擊 Edit / Preferences 選項
     002
  • 再像圖片裡一樣填入路徑。

到此基本上已經完成我們所要的功能了。偏偏遇上了一些問題,所以順便記錄一下,一個是SSL問題,一個是easy_install工具。

python 2.6版以後已經有包含SSL模塊了,但2.5版卻沒有,所以如果用的是古老的GAE SDK並不會有任何錯誤,但現在的GAE SDK卻會告訴你有這個問題,反正缺啥裝啥,為了將來可能還要安裝其他模塊那就先安裝 python setuptools 好了(如果安裝時python路徑無法選擇,那就暫時把python25目錄移到原安裝目錄下再繼續)。安裝完後到 python25\Scripts 下就能找到 easy_install.exe了。

再來安裝PIL模塊。 easy_install PIL 很快就安裝完成。

用 easy_install SSL時卻發生錯誤,既然無法自動只好手動。

我們用MinGW32來編譯我們要的模塊,首先下載OpenSSL(選擇Developer)跟 libgw32c (選擇Developer)後解壓縮到MinGW32目錄下。

設定一下臨時路徑。

set PATH=%PATH%;C:\MinGW\bin
set LIBRARY_PATH=C:\MinGW\lib
set C_INCLUDE_PATH=C:\MinGW\include

下載 Python SSL模塊原始檔。http://pypi.python.org/pypi/ssl

解壓縮後修改setup.py檔

if sys.platform == 'win32′:

# Assume the openssl libraries from GnuWin32 are installed in the
# following location:
gnuwin32_dir = os.environ.get(“GNUWIN32_DIR”, r”C:\MinGW\GnuWin32″)

到此就可以下指令開始安裝了

python setup.py build -c mingw32 install

一切都完成後就可以把 PortableGAE整個目錄帶著跑了。


[+/-] 繼續閱讀...