Posts
npm - Update npm with powershell
npm 的版本如果過舊要更新版本,除了用 npm install 去安裝更新版本的 npm,也可以用 powershell 去進行更新.
先用 npm 安裝 npm-windows-upgrade。
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force npm install -g npm-windows-upgrade 再呼叫 npm-windows-upgrade,選取要安裝的 npm 版本,然後等待更新完成即可。
read morePosts
SikuliX - Global Settings
SikuliX 有提供一些設定值可供設定,像是 ActionLogs、InfoLogs、DebugLogs、MinSimilarity、MoveMouseDelay、DelayAfterDrag、DelayBeforeDrop、SlowMotionDelay、WaitScanRate、ObserveScanRate、ObserveMinChangedPixels 等,若有需要可以透過程式修改設定,詳細的說明可參閱這篇。
像是我們可以修改滑鼠移動的延遲、修改點擊的延遲、修改滑鼠按下前的延遲、修改鍵盤輸入的延遲、修改等待逾時的時間。
Settings.MoveMouseDelay = 0 Settings.ClickDelay = 0 Settings.DelayBeforeMouseDown = 0 Settings.TypeDelay = 0 Settings.AutoWaitTimeout = 30 * 1000 用程式設定起來就像是下面這樣:
Link Global Functions and Features — Sikuli X 1.0 documentation
read morePosts
Vim - Setting up Vim in Windows
Vim 要在 Windows 使用,可下載 Windows 安裝包下來安裝。
安裝完設定環境變數,在 Path 這邊加上 Vim 的目錄位置。
這樣在 MS-DOS 視窗就可以直接調用 Vim 命令了。
若是使用的是 cmder,那可以開啟 [cmder folder]endor\init.bat 進行設定。
找到 Path 設定的部分。
添加 Vim 目錄位置後存檔。
在 cmder 內就可以調用 Vim 了。
Link Vim in Windows – Medium Setting up Vim in Windows – Medium How To Install and Configure Vi / Vim Editor on Windows OS
read morePosts
SikuliX - Matching Target offset
SikuliX 在撰寫上提供了些彈性,能讓圖片在比對時提供模糊比對,或是要決定圖片被按下的位置。
像是下面這邊筆者稍微修改了前面帶到的範例,這邊用執行視窗整個畫面截圖。
那麼執行視窗輸入框內的字樣不一樣時,SikuliX 怎麼比對的到呢?而 Click 時 SikuliX 怎麼知道要點在哪個位置呢?
以這個例子來說,我們可以點選 SikuliX 程式上的圖片,在 Pattern Settings 這頁設定模糊比對的比例。調整模糊比對後如果在畫面中有被成功比對到,被比對到的地方會被遮罩起來。像是這邊將比對的比例調低,輸入框的字樣不論是什麼就都可以比對的到了。
Target Offset 頁面這邊決定著圖片被 Click 的位置,在圖片中點選即可決定圖片被點選的位置。像是這邊筆者就讓它等同點擊 OK 按鈕。
善用這兩個功能我們在撰寫 SikuliX 就可以少擷取很多圖片,除了節省儲存的空間,也會更好撰寫。
read morePosts
SikuliX - Getting started
Sikulix IDE 打開後,左側有放一些常用命令,可以用來撰寫程式,若有需要也可以用 Python 或是 Ruby 輔助撰寫 (主要看安裝時選擇用哪個語言當作 scripting language),像是加入函式,迴圈,或是條件式,或是更複雜的處理等。
像是要開啟 Chrome,我們可以像下面這樣撰寫。
這段程式會按下熱鍵 Win + R,等待執行對話框出現,輸入 chrome 後按下 Enter 按鈕,等待 Google 圖示出現。
撰寫中如果需要截圖,可以按熱鍵 Ctrl + Shift + 2。
撰寫完後按下上方的 Run 即可開始運行。
若要中斷運行,可以按熱鍵 Alt + Shift + C。
read morePosts
SikuliX - Download Setup
Sikulix 程式可到這邊下載。
下載下來後將 sikulixsetup-1.1.0.jar 放至欲安裝的位置,點選兩下進行安裝。
選擇要安裝的項目後按下 Setup Now 按鈕。
按下後會顯示要安裝的項目,如果正確無誤則按下 Yes 按鈕繼續即可。
接著會問是否需要安裝到 Python 2.7 版,視需求決定即可。這邊筆者公司電腦安裝 2.7 會有問題,所以筆者是選 No。
程式開始進行安裝…
安裝完會做些 functional test 驗證安裝是否成功。
安裝成功我們會看到這個畫面,按下 OK 按鈕繼續。
最後還會提醒安裝的細節可以查閱 log 檔。
安裝完後檔案都會跟安裝檔放在一起,所以一開始決定好要安裝的位置後在安裝很重要。
點選 runsikulix.cmd 即可開始運行程式。
最後提醒一下,若安裝上有碰到問題,記得查閱 log 檔(SikuliX-1.1.0-SetupLog.txt)。
Link 1.1.0 “SikuliX” : Series sikulix : Sikuli
read morePosts
>-
Topshelf 是一 Hosting Framework,能讓我們很簡易的建造 Windows Services 程式,並將之 Hosting 起來運行。可以增加使用彈性、易於除錯、更可以跨平台運行。
首先開個主控台程式,將之安裝 Topshelf 套件。
套件安裝好後即可進行程式的撰寫,大方向是透過 HostFactory 建立 Host 後,將 Host 運行起來即可。
若是進一步來看,可再細分為兩種撰寫方式。一種是像下面這樣用委派的方式將怎樣建立服務、服務怎樣啟動、服務怎樣停止…等對應的設定設上去。
using System; using Topshelf; … class Program { static void Main(string[] args) { HostFactory.Run(x => { x.Service<Program>(s => { s.ConstructUsing(name => new Program()); s.WhenStarted(p => p.Start()); s.WhenStopped(p => p.Stop()); }); }); } public void Start() { Console.WriteLine("Service start..."); } public void Stop() { Console.WriteLine("Service stop..."); } } 一種則是實作 ServiceControl,將 Service 的動作都寫在 ServiceControl 中。
read morePosts
Oracle SQL Developer - Snippets
要使用 Oracle SQL Developer 的 Snippets 功能,我們可以點選 [ View | Snippets ] 主選單選項。
將 Snippets 視窗帶出後,可以看到 Oracle SQL Developer 已經內建了許多的 Category。
每個 Category 都有對應的 Snippets。
若內建的 Category 不敷使用,這邊也可以自己建造 Snippet。
像是這邊筆者建立了一個新的 Snippet 在新的 Category,建立完就可以馬上看到建立出來的 Category。
以及建立的 Snippet。
Snippet 的使用只要將之拖曳至 SQL 視窗。
Snippet 就會被帶到 SQL 視窗
自定義的 Snippet 會設定在 %appdata%\SQL Developer\UserSnippets.xml,有需要匯入匯出可從這邊下手。
read morePosts
NanoProfiler - a light weight .NET profiling library
NanoProfiler 有許多的套件。
如果是 Web 專案,安裝 NanoProfiler.Web 即可 (會連帶安裝 NanoProfiler)。
套件安裝完後要設定 CircularBuffer,可透過程式設定…
protected void Application_Start(object sender, EventArgs e) { ... ProfilingSession.CircularBuffer = new CircularBuffer<ITimingSession>(200, session => false); ... } 也可以透過設定檔設定…
<configuration> <configSections> <section name="slf4net" type="slf4net.Configuration.SlfConfigurationSection, slf4net" /> <section name="nanoprofiler" type="EF.Diagnostics.Profiling.Configuration.NanoProfilerConfigurationSection, NanoProfiler" /> </configSections> ... <nanoprofiler circularBufferSize="200" /> </configuration> CircularBuffer 設定完後,就可以設定要 Profile 的部分,像是每個 Request 的進出。
protected void Application_BeginRequest(object sender, EventArgs e) { ProfilingSession.Start("root"); } protected void Application_EndRequest(object sender, EventArgs e) { ProfilingSession.Stop(); } 以及 Request 中想要監測的部分。
read more