最近用 coursera 學 machine learning ,但遇到用 octave 作業寫完卻無法提交的問題。提交了之後會遇到
!! Submission failed: unexpected error: urlread: Peer certificate cannot be authenticated with given CA certif
icates
!! Please try again later.
的錯誤訊息。
2016年12月29日 星期四
2016年12月23日 星期五
LoaderLock error
VS2015關閉LoaderLock訊息回報被改到
Debug->Windows->Exception Settings
Managed Debugging Assistants>LoaderLock這個地方
以前版本的VS是在
Debug -> Exceptions
Managed Debugging Assistants>LoaderLock
對於所有遇到的不明loader lock錯誤都可以從這邊關掉。不只在VS裡面,compile出來的執行檔也不會回報這類錯誤。
Debug->Windows->Exception Settings
Managed Debugging Assistants>LoaderLock這個地方
以前版本的VS是在
Debug -> Exceptions
Managed Debugging Assistants>LoaderLock
對於所有遇到的不明loader lock錯誤都可以從這邊關掉。不只在VS裡面,compile出來的執行檔也不會回報這類錯誤。
2016年12月21日 星期三
[C#] class/function 前面的方括號
在看ApplicationSetting所產生的code的時候發現一段code
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string filePath {
get {
return ((string)(this["filePath"]));
}
set {
this["filePath"] = value;
}
}
public string filePath{}前面的[]們,原來是Attribute。寫專案還沒時間看,先筆記一下
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string filePath {
get {
return ((string)(this["filePath"]));
}
set {
this["filePath"] = value;
}
}
public string filePath{}前面的[]們,原來是Attribute。寫專案還沒時間看,先筆記一下
vs debug 時期路徑
因為debug的時候exe會因為x86/x64....的原因build到不同的位子去
如果有使用相對路徑去讀取檔案就可能會需要很多份
要找Resource們也會很困難
一個簡單的方法是去設定debug的路徑
如果有使用相對路徑去讀取檔案就可能會需要很多份
要找Resource們也會很困難
一個簡單的方法是去設定debug的路徑
2016年12月16日 星期五
c# constructor 呼叫順序
在繼承關係中,constructor的呼叫順序是
1. 所有參數預設值會先被設定
class MyClass
{
int para1 = 1;...
}
因此在constructor被呼叫時,para1已經是1了
2. 最base的constructor被呼叫
3. 一層層往上呼叫
4. 最derived的最後被呼叫
5. 最後執行Object and collection initializer
(new myClass{para1 = 2; para2 = 3;...})初始會陣列就是用這個操作方式
2016年12月13日 星期二
用setup.py安裝python模組
如果下載一個python模組,內有setup.py檔案
安裝方式:
在系統管理員權限的cmd底下
cd 到 setup.py所在路徑
python setup.py install
安裝方式:
在系統管理員權限的cmd底下
cd 到 setup.py所在路徑
python setup.py install
2016年12月8日 星期四
open source等化器 音量放大器
最近開始聽coursera上的Machine Learning課程
但是影片的聲音實在是有點小聲,聲音都開到100%了還是聽不清楚
本來找了一些等化器,但是功能有點陽春介面看起來不夠厲害
但是影片的聲音實在是有點小聲,聲音都開到100%了還是聽不清楚
本來找了一些等化器,但是功能有點陽春介面看起來不夠厲害
2016年12月7日 星期三
[筆記]rope management
跟K在NamPhapayai爬了一條多繩距的Madagascar,五個繩距,難度不難(最多5+)大多數是橫渡(Traverse)。但因為多繩距操作不熟悉搞了很久,而且還時常打結。
2016年12月6日 星期二
Minivan to NamPhaPaYai camp
Minivan to the NamPhaPaYai camp have been moved to Mo Chit Bus Station since this month. THERE IS NO MINIVAN GOING FROM VICTORY MONUMENT TO KAENG KHOI (CAMP'S TOWN) ANY MORE!!!
The nest way to go Kaeng Khoi by public transport is going by minivan, departing from Mo Chit bus station every hour. But when you arrive Kaeng Khoi, you may still need to take a taxi to the camp, which cost you 400 THB for a ride (no matter how many people) .
The nest way to go Kaeng Khoi by public transport is going by minivan, departing from Mo Chit bus station every hour. But when you arrive Kaeng Khoi, you may still need to take a taxi to the camp, which cost you 400 THB for a ride (no matter how many people) .
NamPhaPaYai minibus 前篇
要從victory Monument搭minibus到Kaeng Koi
但Victory Monument好稱有170條minibus路線,真是不知道該從何找起阿@@
有找到網站有列出各區可以去的地方,但上面沒有Kaeng Khoi..
看到有個app ThaiVans 可以去載apk裝在手機上
但Victory Monument好稱有170條minibus路線,真是不知道該從何找起阿@@
有找到網站有列出各區可以去的地方,但上面沒有Kaeng Khoi..
看到有個app ThaiVans 可以去載apk裝在手機上
2016年11月29日 星期二
MIL鍵盤事件無法使用
MIL如果用displaySelectWindow將顯示放到panel中,內建的鍵盤事件就會無法使用
主要是因為鍵盤事件沒有被導向到Form中
解決的方法是將SelectWindow導向到Form中,再將Form嵌入Panel上,最後,把母Form中的鍵盤事件導向到DisplayForm中
主要是因為鍵盤事件沒有被導向到Form中
解決的方法是將SelectWindow導向到Form中,再將Form嵌入Panel上,最後,把母Form中的鍵盤事件導向到DisplayForm中
[WinForm]取消focus狀態
這篇要做的事情跟前一篇的取消textbox輸入狀態不同
textbox只要將form的active control改成null或其他control就可以取消輸入狀態
但如果今天是想取消鍵盤事件對子Control的校果(例如只在特定狀態下讓快捷鍵能對子control作用)就沒這麼簡單
主要的問題是出在取消active control只是讓使用者不會繼續輸入,但是鍵盤事件一樣會被control接收到
textbox只要將form的active control改成null或其他control就可以取消輸入狀態
但如果今天是想取消鍵盤事件對子Control的校果(例如只在特定狀態下讓快捷鍵能對子control作用)就沒這麼簡單
主要的問題是出在取消active control只是讓使用者不會繼續輸入,但是鍵盤事件一樣會被control接收到
2016年11月28日 星期一
鎖定combobox
combo box 如果不想讓使用者任意輸入值(其實一般狀況下combo box的操作方式都是這樣),可以把combobox的DropDownStyle改成DropDownList
clr20r3 錯誤
最近寫一隻avt vimba取像程式,在我自己電腦run沒問題,但在traget上一直出現clr20r3的錯誤訊息
但在有安裝VS的電腦上又沒事orz
google上大部分的人都說這是.net framework沒有安裝正確版本的問題,少部分有更奇門遁甲的招式。但其實,.net framewor的版本問題會有其他錯誤訊息產生。
後來經過一番奮戰發現,這就是在form load之前的error,一旦form建立了,error的形式就會改變。所以這個clr20r3就是一般的bug,只是在form尚未建立時發生,請遵循一般debug步驟排除之。
也就是說如果你下載了一個程式,他在妳電腦上出現這樣的error,這隻程式有問題,如果你沒有code不用想修復他。
如果你是coder,你的程式有問題,請想辦法Debug
但在有安裝VS的電腦上又沒事orz
google上大部分的人都說這是.net framework沒有安裝正確版本的問題,少部分有更奇門遁甲的招式。但其實,.net framewor的版本問題會有其他錯誤訊息產生。
後來經過一番奮戰發現,這就是在form load之前的error,一旦form建立了,error的形式就會改變。所以這個clr20r3就是一般的bug,只是在form尚未建立時發生,請遵循一般debug步驟排除之。
也就是說如果你下載了一個程式,他在妳電腦上出現這樣的error,這隻程式有問題,如果你沒有code不用想修復他。
如果你是coder,你的程式有問題,請想辦法Debug
2016年11月25日 星期五
[VS]取消textbox的輸入狀態
在form中加入了快捷鍵的功能後在textBox中輸入文字竟然也會觸發快鍵
難怪快捷鍵都設定成ctrl+blablabla
但是我就是為了方便程式運作不用用滑鼠按按鈕,所以快捷鍵只想按鍵盤上的一個鍵,因此在textbox輸入時要阻止form的快捷鍵運作。
[VS]設定透明Label
將Label背景設定為透明
label.Parent = pictureBox_lowerLayerObject;
label.BackColor = Color.Transparent;
label.Parent = pictureBox_lowerLayerObject;
label.BackColor = Color.Transparent;
2016年11月21日 星期一
openCv顯示影像
opencv 顯示影像可以用
cvShowImage(windowName, image);
但是在使用完這行之後一定要用
cvWaitKey(delay);
才會顯示
另外,這裡的delay應該是timeOut的意思
cvWaitKey會傳回使用者按下哪個鍵的char
可以用if(cvWaitKey(1) == 'q'){exit();}來退出
--
cvShowImage(windowName, image);
但是在使用完這行之後一定要用
cvWaitKey(delay);
才會顯示
另外,這裡的delay應該是timeOut的意思
cvWaitKey會傳回使用者按下哪個鍵的char
可以用if(cvWaitKey(1) == 'q'){exit();}來退出
--
2016年11月13日 星期日
C++ c# raw string literal 原始字串
在C++字串中為了可以表示換行,tab等特殊操作,因此有跳脫字元\
好死不死資料夾路徑也用很多'\'
以前都會使用兩個("\\")表示\,但這樣的問題是在複製路徑後需要經過加工有點麻煩
ex: c:\testFile.txt 需要以 "c:\\testFile.txt"表示,麻煩
C++ 11裡面提供Raw String
表示
R"\a\b\c"
相當於
"\\a\\b\\c"
蠻方便的
在c#中則可以用 @"\a\b\c"
相當於"\\a\\b\\c"
好死不死資料夾路徑也用很多'\'
以前都會使用兩個("\\")表示\,但這樣的問題是在複製路徑後需要經過加工有點麻煩
ex: c:\testFile.txt 需要以 "c:\\testFile.txt"表示,麻煩
C++ 11裡面提供Raw String
表示
R"\a\b\c"
相當於
"\\a\\b\\c"
蠻方便的
在c#中則可以用 @"\a\b\c"
相當於"\\a\\b\\c"
MIL win7 touch縮放與滑鼠滾輪
mil的display在window中已經做好對滑鼠滾輪縮放的支援
但在win7中卻一直無法使用
昨天新同事mike發現在筆電上,win7是可以做縮放的,但需要用touch pad的zoom(兩隻手指往內或往外)
但在win10中卻又可以用滾輪跟touchpad
但在win7中卻一直無法使用
昨天新同事mike發現在筆電上,win7是可以做縮放的,但需要用touch pad的zoom(兩隻手指往內或往外)
但在win10中卻又可以用滾輪跟touchpad
2016年11月4日 星期五
更換驅動程式 switch device driver
同時使用Vimba與Matrox,同一台相機在兩個狀況需要不同的驅動程式。
1. 打開Device Manager
2. 在目標裝置上(right click on target device)右鍵>Properties
3. 在Driver的tab中>Update Driver>Browse my computer for driver software
4. 選擇 Let me pick from a list on my computer 這裡就可以改變使用的driver
2016年11月2日 星期三
Interface, abstract class
今天試著寫grabber跟processor
本來是寫用Mil作grabber, vidi作processor
後來想想說把他抽象化,趁機研究了一下abstract, Interface跟呼叫base的contructor
2016年11月1日 星期二
Mil app 關閉錯誤
在free mil app的時候會出現mil app ID 錯誤的錯誤訊息
經過debug之後發現,原因出在inquire的時候餵入接收參數型態為ref int
將型態改為ref MIL_INT之後app就可以正常被釋放
奇怪的是,其他如buffer之類的暫存器釋放不完全會在free mil system時出現system內尚有buffer未釋放
經過debug之後發現,原因出在inquire的時候餵入接收參數型態為ref int
將型態改為ref MIL_INT之後app就可以正常被釋放
奇怪的是,其他如buffer之類的暫存器釋放不完全會在free mil system時出現system內尚有buffer未釋放
2016年10月26日 星期三
在Inspector中轉換到model座標
在MIL中可以使用McalFixture將座標系統依照model Finder或patern Match...的結果作旋轉平移。
用Inspector可以很簡單的設定measurement marker的參數,位置並看效果。但inspector預設的坐標系是左上角為原點的坐標系,與model的坐標系不同。
用Inspector可以很簡單的設定measurement marker的參數,位置並看效果。但inspector預設的坐標系是左上角為原點的坐標系,與model的坐標系不同。
[Inspector] MIL model Finder by Edge
上週有人問Inspector是否可以以比較省空間的方式去存model
測試了將影像轉乘binary與用dxf檔案兩種方式,發現在我測試的圖形下,使用binary會比使用dxf產生的檔案更小。可能是因為dxf有比較大的檔頭,在尺寸不大的狀況下佔不了便宜。
測試了將影像轉乘binary與用dxf檔案兩種方式,發現在我測試的圖形下,使用binary會比使用dxf產生的檔案更小。可能是因為dxf有比較大的檔頭,在尺寸不大的狀況下佔不了便宜。
2016年10月21日 星期五
Win10永遠用administrator執行
像是Visual Studio之類的程式實在是沒有理由用User執行(真的用User執行了他會提示你用Admin執行)
可以從註冊檔裡面改變每個程式預設的執行權限
2016年10月19日 星期三
2016年10月18日 星期二
c#中使用指標
C#中要使用指標
1. project的build要開啟allow unsafe code (用/unsafe編譯)
2. 指標只能出現在 unsafe{} 區段
這次因為是從其他地方來的byte[],而且陣列很巨大,因此應該要避免資料的複製。
1. project的build要開啟allow unsafe code (用/unsafe編譯)
2. 指標只能出現在 unsafe{} 區段
這次因為是從其他地方來的byte[],而且陣列很巨大,因此應該要避免資料的複製。
2016年9月29日 星期四
928,爆滿的紅石
928教師節勞工大放假XD(不過後來颱風來大家都放)
下午想說去紅石運動運動
but...紅石竟然創紀錄快90人(下午三點)
水都被喝完(颱風天沒有送水服務)
因為今天台北的攀岩場
運動中心放颱風假
stone屋頂破
信義再定線
內湖機房失火
可能剩市民跟汐止吧
最後實在是太悶了,沒爬看看書就走了
下午想說去紅石運動運動
but...紅石竟然創紀錄快90人(下午三點)
水都被喝完(颱風天沒有送水服務)
因為今天台北的攀岩場
運動中心放颱風假
stone屋頂破
信義再定線
內湖機房失火
可能剩市民跟汐止吧
最後實在是太悶了,沒爬看看書就走了
20160925龍洞後門
今天tr(都有take)了雷鬼跟高檔快扣
高檔快扣: 中間部分有難關,左腳腳點不明。倒數第二個over那邊也有一個,需要layback
雷鬼: 起攀難關,看beta是右手抓橫裂隙,雙腳原地立定跳起,左手直接抓大點。完攀難關,左右手手點不錯,但又腳腳點不明,踩到之後需要站高出手。這條線一開始用掛繩器掛了兩個快扣之後不敢lead完,幸好有高手Matt支援才能完tr。
本來想用上下兩個bolt撤退,但是一個bolt中有快扣又有自我確保,實在難以再穿過繩子做雙繩垂降,也很難只讓下面的bolt受力已解除上面bolt的裝備。
高檔快扣: 中間部分有難關,左腳腳點不明。倒數第二個over那邊也有一個,需要layback
雷鬼: 起攀難關,看beta是右手抓橫裂隙,雙腳原地立定跳起,左手直接抓大點。完攀難關,左右手手點不錯,但又腳腳點不明,踩到之後需要站高出手。這條線一開始用掛繩器掛了兩個快扣之後不敢lead完,幸好有高手Matt支援才能完tr。
本來想用上下兩個bolt撤退,但是一個bolt中有快扣又有自我確保,實在難以再穿過繩子做雙繩垂降,也很難只讓下面的bolt受力已解除上面bolt的裝備。
2016年9月23日 星期五
Anaconda及tensorflow安裝
以下是在Ubuntu底下操作
安裝Anaconda
用Anaconda安裝Tensorflow可以避免把python 的interpreter搞壞
安裝步驟:
1.下載Anaconda
2.切換到Anaconda.sh所在目錄(cd Downloads)執行 bash Anaconda xxxx.sh
$cd Downloads
$bash Anaconda xxxx.sh
安裝完成之後需要把Anaconda的bin加入PATH中
$export PATH=~/anaconda3/bin:$PATH
可以用dir確認anacoda的安裝位置
這麼做之後每次開啟都需要再輸入$export PATH=~/anaconda3/bin:$PATH一次。可以在~/.bashrc中的文件尾端加上export PATH=~/anaconda3/bin:$PATH
$vi ~/.bashrc
vi操作: 按a進入編輯模式,esc離開編輯模式,:qw儲存並離開,:q!不儲存離開
成功加入之後可以新增conda的workspace
$ conda create -n tensorflow python=3.5
加入後可以啟動conda
$ source activate tensorflow
在tensorflow的workspace下安裝tensorflow
(tensorflow)$ conda install -c conda-forge tensorflow
安裝Anaconda
用Anaconda安裝Tensorflow可以避免把python 的interpreter搞壞
安裝步驟:
1.下載Anaconda
2.切換到Anaconda.sh所在目錄(cd Downloads)執行 bash Anaconda xxxx.sh
$cd Downloads
$bash Anaconda xxxx.sh
安裝完成之後需要把Anaconda的bin加入PATH中
$export PATH=~/anaconda3/bin:$PATH
可以用dir確認anacoda的安裝位置
這麼做之後每次開啟都需要再輸入$export PATH=~/anaconda3/bin:$PATH一次。可以在~/.bashrc中的文件尾端加上export PATH=~/anaconda3/bin:$PATH
$vi ~/.bashrc
vi操作: 按a進入編輯模式,esc離開編輯模式,:qw儲存並離開,:q!不儲存離開
成功加入之後可以新增conda的workspace
$ conda create -n tensorflow python=3.5
加入後可以啟動conda
$ source activate tensorflow
在tensorflow的workspace下安裝tensorflow
(tensorflow)$ conda install -c conda-forge tensorflow
2016年9月21日 星期三
2016年9月20日 星期二
Thunderbird 雷鳥 發 中華電信 hinet 電子郵件 email
if you can't send an email by hinet /msa severver by Thunderbird, try this out.
公司信箱用hinet服務
大部分人使用outlook,但因為覺得有免費何必用盜版的心態用了雷鳥
但是經常遭遇到信寄不出去的問題
公司信箱用hinet服務
大部分人使用outlook,但因為覺得有免費何必用盜版的心態用了雷鳥
但是經常遭遇到信寄不出去的問題
2016年9月9日 星期五
2016年8月22日 星期一
c++ pointer of address
當需要在method中allocate記憶體並給外部使用時就會需要用到pointer of address。因為address是在method中產生,因此需要傳入address的容器。
2016年8月19日 星期五
執行字串
python可以執行字串中的文字
有兩種方式,eval 和 exec
eval用來執行單行指令,並且會回傳該行指令回傳值。在eval中不能修改外部值
ie:eval("a = 1 ")是非法的
exec則可執行多行指令,且忽略回傳值
ex:
myStr = "print('hi')"
exec(myStr)
>>> hi~
有兩種方式,eval 和 exec
eval用來執行單行指令,並且會回傳該行指令回傳值。在eval中不能修改外部值
ie:eval("a = 1 ")是非法的
exec則可執行多行指令,且忽略回傳值
ex:
myStr = "print('hi')"
exec(myStr)
>>> hi~
在interactive shell / script中執行.py檔案
1. 設定檔案所賽位置為模組搜尋目錄
import sys
sys.path.append(r"filePath")
2. 執行
import myPyFile
如果myPyFile有更新可以用
import imp
imp.reload(myPyFile)
來更新(或想在執行一次)XD
import sys
sys.path.append(r"filePath")
2. 執行
import myPyFile
如果myPyFile有更新可以用
import imp
imp.reload(myPyFile)
來更新(或想在執行一次)XD
2016年8月17日 星期三
2016年8月16日 星期二
2016年8月15日 星期一
C++找不到include檔案
在win10用vs2015打開原廠用2010產生的cpp專案,許多include的檔案都找不到,當然也跑出一拖拉庫的錯誤
從project的property中確定有用還境變數設定搜尋範圍
後來發現要將專案目錄下的.sdf檔刪除,intellisense才會重新去搜尋include的目標
2016年8月12日 星期五
tkinter python GUI dev.
tkinter是標準的python gui函式庫
操作步驟很簡單
- import tkinter 模組
- 建立GUI主視窗
- 在應用程式中加入widgets
- 在主事件迴圈(main event loop)中處裡使用者造成的事件
操作步驟很簡單
- import tkinter 模組
- 建立GUI主視窗
- 在應用程式中加入widgets
- 在主事件迴圈(main event loop)中處裡使用者造成的事件
消失的PyCharm watches
disappearing PyCharm's Watches panel
I can't find it after I opened PyCharm
It's default merge with Variables panel, you can split it by click here...
I can't find it after I opened PyCharm
It's default merge with Variables panel, you can split it by click here...
2016年8月11日 星期四
basic python
if condition1:
elif condition2:
else:
def myFunction(x,y,z):
return x+y+y
"""
多行註解
"""
#單行註解
\ 兩行合併
ex:
a = \
5
等同於 a = 5
a = "a\
bc"
等同於
a = "abc"
elif condition2:
else:
def myFunction(x,y,z):
return x+y+y
"""
多行註解
"""
#單行註解
\ 兩行合併
ex:
a = \
5
等同於 a = 5
a = "a\
bc"
等同於
a = "abc"
formated string
"key:%s value: %s" % ("ball",100)
"name:%s, grade: %.1f" %("taco",60.66) #get 'name:taco, grade: 60.7'
s = "hi {name}~"
s.format(name = "taco") #get 'hi taco~'
s = "hi {}"
s.format(taco) # get 'hi taco'
s = "hi {0}"
s.format(taco) # get 'hi taco'
s = "hi {n1} and {n2}~"
s.format(n2 = "taco", n1 = "tom") #get 'hi tom and taco~'
raw string
a = r"\n" #is equal to '\\n'
multi-line string
a = '''hi
hi
hi
'''
gets
hi
hi
hi
a = a'''hi\n
hi\n
hi\n
'''
gets
hi\n
hi\n
hi\n
"name:%s, grade: %.1f" %("taco",60.66) #get 'name:taco, grade: 60.7'
s = "hi {name}~"
s.format(name = "taco") #get 'hi taco~'
s = "hi {}"
s.format(taco) # get 'hi taco'
s = "hi {0}"
s.format(taco) # get 'hi taco'
s = "hi {n1} and {n2}~"
s.format(n2 = "taco", n1 = "tom") #get 'hi tom and taco~'
raw string
a = r"\n" #is equal to '\\n'
multi-line string
a = '''hi
hi
hi
'''
gets
hi
hi
hi
a = a'''hi\n
hi\n
hi\n
'''
gets
hi\n
hi\n
hi\n
在cmd中使用python及pip
需要在環境變數(environment variables)>Path中加入python路徑
C:\Users\<username>\AppData\Local\Programs\Python\Python35
用pip3則需加入
C:\Users\<username>\AppData\Local\Programs\Python\Python35\Scripts
C:\Users\<username>\AppData\Local\Programs\Python\Python35
用pip3則需加入
C:\Users\<username>\AppData\Local\Programs\Python\Python35\Scripts
2016年8月10日 星期三
Geany執行python程式
安裝完看起來不錯用的Geany IDE卻不能Execute
原來是因為沒有把python加入系統路徑
而Geany的預設execute行為就是去跑python %f%
這可以在Build>Set build commands中的Execute可以去設定,簡單的方式是直接把這裡的路徑改成python安裝路徑,比較麻煩的方法如下面所說
原來是因為沒有把python加入系統路徑
而Geany的預設execute行為就是去跑python %f%
這可以在Build>Set build commands中的Execute可以去設定,簡單的方式是直接把這裡的路徑改成python安裝路徑,比較麻煩的方法如下面所說
2016年8月9日 星期二
2016年8月8日 星期一
c++快速讀取(空白)分隔文字檔案
研究了一陣子終於可以快速讀取檔案(一開始讀取時間為7s,改善後為300ms)
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
c++快速讀取(空白)分隔文字檔案
研究了一陣子終於可以快速讀取檔案(一開始讀取時間為7s,改善後為300ms)
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
概念是把全部的檔案都先load到記憶體中
並且先掃過檔案,知道elements數,產生靜態陣列
最後再用strtod將記憶體中的char*轉換成double
strtod可以回傳轉換終止的ptr
atod可以轉換,但沒有回傳ptr
一點點git
今天又去抓git下來用,因為想要修改專案又怕之後會想改回去orz
用的是git-scm 2.9.2
特別筆記一下
因為想用的功能很簡單所以使用bash操作
抓完安裝之後再目標目錄下右鍵 Git Bash here
如此就會開啟git的bash
首先要將資料夾弄成被git 管理的狀態,資料夾底下會新增一個.git資料夾
$git init
然後可以用
$git status
查詢目前資料夾的git狀態
接著可以把全部資料夾底下的檔案加入git追蹤
$git add .
接著可以去除一些compile產生的執行檔
$git rm -r --cached x64
x64是目標目錄,如此x64/Debug/跟x64/Release/裡面的東西都會被移除git控制
但這樣用status查詢會警告剛剛那些資料夾沒有被加入
所以需要在資料夾底下加入一個.gitignore的檔案
$touch .gitignore
(用檔案管理員無法新增沒有檔案名稱得檔案)
$vim .gitignore
編輯
x64
完成後按esc接著:wq結束並儲存
這樣就不會產生警告說這些檔案沒加入了
git的cmd還不錯,可以按tab auto-complete
例如你要輸入
$git branch myBranch
只要輸入
$git br<tab> my<tab>
就ok了!
<日常操作>
加入完成後如果需要將目前的資料儲存為一個版本
$git commit -a -m 'message here'
要切換到新的branch
$git checkout -b myBranch
往後如果只是要切換而沒有要新增
$git checkout myBranch
要看目前有的branch
$git branch
要刪除某個branch(不檢查有無merge過了)
$git branch -D myBranch
會檢查有無merge完
$git branch -d myBranch
$git remote add usbBackup '/g/git/myProject'
但是要先把g:/git/myProject設成git資料夾,方法也很簡單,就第一次直接把全部myProject內的東西copy到g:/git/底下
之後本地端有更新都可以用
$ git push usbBackup --all
把備份端同步
可以用
$git remote
查看有多少remote的東西
$gitk --all
圖形化查詢分支狀態
用的是git-scm 2.9.2
特別筆記一下
因為想用的功能很簡單所以使用bash操作
抓完安裝之後再目標目錄下右鍵 Git Bash here
如此就會開啟git的bash
首先要將資料夾弄成被git 管理的狀態,資料夾底下會新增一個.git資料夾
$git init
然後可以用
$git status
查詢目前資料夾的git狀態
接著可以把全部資料夾底下的檔案加入git追蹤
$git add .
接著可以去除一些compile產生的執行檔
$git rm -r --cached x64
x64是目標目錄,如此x64/Debug/跟x64/Release/裡面的東西都會被移除git控制
但這樣用status查詢會警告剛剛那些資料夾沒有被加入
所以需要在資料夾底下加入一個.gitignore的檔案
$touch .gitignore
(用檔案管理員無法新增沒有檔案名稱得檔案)
$vim .gitignore
編輯
x64
完成後按esc接著:wq結束並儲存
這樣就不會產生警告說這些檔案沒加入了
git的cmd還不錯,可以按tab auto-complete
例如你要輸入
$git branch myBranch
只要輸入
$git br<tab> my<tab>
就ok了!
<日常操作>
加入完成後如果需要將目前的資料儲存為一個版本
$git commit -a -m 'message here'
要切換到新的branch
$git checkout -b myBranch
往後如果只是要切換而沒有要新增
$git checkout myBranch
要看目前有的branch
$git branch
要刪除某個branch(不檢查有無merge過了)
$git branch -D myBranch
會檢查有無merge完
$git branch -d myBranch
$git remote add usbBackup '/g/git/myProject'
但是要先把g:/git/myProject設成git資料夾,方法也很簡單,就第一次直接把全部myProject內的東西copy到g:/git/底下
之後本地端有更新都可以用
$ git push usbBackup --all
把備份端同步
可以用
$git remote
查看有多少remote的東西
$gitk --all
圖形化查詢分支狀態
2016年8月5日 星期五
Debug c++/cli
因為要在c++中加入/cli搞得天翻地覆...
一直收到error message
"The Following Module was built either with optimizations enabled or without debug information"
所以決定不再修改上一篇文章,開一篇新的
在文章裡面先看到兩種解法
Kept receiving message "The Following Module was built either with optimizations enabled or without debug information" when I try to open a project /cli option to use classes from c# in c++. Here is the solution.
一直收到error message
"The Following Module was built either with optimizations enabled or without debug information"
所以決定不再修改上一篇文章,開一篇新的
在文章裡面先看到兩種解法
Kept receiving message "The Following Module was built either with optimizations enabled or without debug information" when I try to open a project /cli option to use classes from c# in c++. Here is the solution.
2016年8月4日 星期四
在c++/cli專案中使用c# dll
因為廠商提供的專案是c++,但是轉檔的utility是c#所以研究了一下
google會看到很多用COM物件或是其他看起來有點麻煩的方法
研究後發現是很困難,but還是有些不踏實的地方
後來覺得小東西也是可以整個重寫就好啦XD
google會看到很多用COM物件或是其他看起來有點麻煩的方法
研究後發現是很困難,but還是有些不踏實的地方
後來覺得小東西也是可以整個重寫就好啦XD
2016年8月3日 星期三
[小技巧]忽略字串中的跳脫字串
一般C#中以\作為跳脫字串的起始,所以若要輸入路徑,則要輸入
可以用@""忽略跳脫字串
例如:
這樣直接copy path再貼到程式中
"C:\\a\\b\\c"
可以用@""忽略跳脫字串
例如:
@"C:\a\b\c"
這樣直接copy path再貼到程式中
2016年8月1日 星期一
2016年7月27日 星期三
自動產生Deligate
今天在測試加入/刪除call back func的時候用到
HookHandlerDelegate = new MIL_GRA_HOOK_FUNCTION_PTR(drawRenewHook);
MgraHookFunction(graphicListId, MIL.M_GRAPHIC_LIST_MODIFIED, HookHandlerDelegate , M_NULL);
vs
MIL.MgraHookFunction(graphicListId, MIL.M_GRAPHIC_LIST_MODIFIED, drawRenewHook, M_NULL);
兩個都可以用,but下面那種方式會有無法取消hook的問題
2016年7月22日 星期五
將object的properties/fields取出
今天想寫一個自動把所有object(已實體化 instanced)中的member抽取出來的功能。抽取的目的是要將object的members全部放入一個List中,其他東西呼叫的時候可以直接呼叫List就好。但在coding的時候又可以有class memeber的防呆特性。
C#利用Type建立物件
BaseClass bd = new DClass();
BaseClass newB = (BaseClass)System.Activator.CreateInstance(bd.GetType());
這時候bd.GetType()會得到DClass
BaseClass newB = (BaseClass)System.Activator.CreateInstance(bd.GetType());
這時候bd.GetType()會得到DClass
2016年7月21日 星期四
用enum value作為array index in C#
為了免code看不懂,可以用enum去指定array的index
ex:
cars[0] = .....
-> cars[(int)carNames.MrsOliver] = ....
好處是在遙遠的另一邊不用去猜0號車到底是MrsOliver還是MrsMarry
範例:
Schedule[] schedules = new int[Enum.GetNames(typeof(WeekDay)).Length];
enum WeekDay
{
sun = 0;
mon = 1;
tue = 2;
...
}
schedules[(int)weekDay.sun] = ....
當然也可以建立個key是enum type的 dictionary
Dictionary<WeekDay, Schedule> schedules = new Dictionary<WeekDay, Schedule>();
就可以直接存取
schedules[weekDay.sun] = ....
ex:
cars[0] = .....
-> cars[(int)carNames.MrsOliver] = ....
好處是在遙遠的另一邊不用去猜0號車到底是MrsOliver還是MrsMarry
範例:
Schedule[] schedules = new int[Enum.GetNames(typeof(WeekDay)).Length];
enum WeekDay
{
sun = 0;
mon = 1;
tue = 2;
...
}
schedules[(int)weekDay.sun] = ....
當然也可以建立個key是enum type的 dictionary
Dictionary<WeekDay, Schedule> schedules = new Dictionary<WeekDay, Schedule>();
就可以直接存取
schedules[weekDay.sun] = ....
2016年7月20日 星期三
news in C#6.0 CS 6.0新增功能
What's new in C# 6.0
觀看筆記
沒啥大改,有一些可以讓程式碼乾淨點的小東西
auto properties, static members, String interpolation, Expression bodied methods, Index initializer, Null-conditional operators, The nameof operator, Exception filters
觀看筆記
沒啥大改,有一些可以讓程式碼乾淨點的小東西
auto properties, static members, String interpolation, Expression bodied methods, Index initializer, Null-conditional operators, The nameof operator, Exception filters
2016年7月19日 星期二
輕裝課筆記
帶面鏡
頭往前傾,面朝下,將頭髮撥開。先將面鏡放到臉上再拉上頭帶。完成後以食指檢查頭髮有無夾入面鏡呼吸管爆吐式排水
以嘴唇用力包覆呼吸管,不是用牙齒咬
使用呼吸管需先執行爆吐式排水
面鏡排水
壓面鏡上緣,頭往後仰,以鼻吐氣踢蛙鞋
台灣多岩岸,常用無後跟式蛙鞋配沙灘鞋,較少使用套腳式蛙鞋膝蓋不用力,用大腿身體的力量
立泳
慢慢踢即可浮起
2016年7月13日 星期三
pointer in c#
在manage code中使用pointer的方法
這裡會用到
System.Runtime.InteropServices.GCHandle類別,提供從unmanaged memory中存取manage object的方式
使用命名空間
using System.Runtime.InteropServices;
這裡會用到
System.Runtime.InteropServices.GCHandle類別,提供從unmanaged memory中存取manage object的方式
使用命名空間
using System.Runtime.InteropServices;
sofware list
GIMP: image processing
VLC player: movie
thunderbird: mail
autohotkey: daily automation
greenShot: print screen
Libre office: office
notepad++ : doc view
VLC player: movie
thunderbird: mail
autohotkey: daily automation
greenShot: print screen
Libre office: office
notepad++ : doc view
2016年7月12日 星期二
graphic list index & label
在mil的grapic list中每個graphic都有他的label跟index
兩個都是系統指定無法手動更改的
(見MgraInquireList中的M_LABEL_VALUE與M_INDEX_VALUE)
but
index會因為graphic的刪除改變但是label卻是不變的
兩個都是系統指定無法手動更改的
(見MgraInquireList中的M_LABEL_VALUE與M_INDEX_VALUE)
but
index會因為graphic的刪除改變但是label卻是不變的
2016年7月11日 星期一
2016年7月10日 星期日
摺疊獨木舟
今天在朋友臉書上看到有人玩一種很酷的摺紙獨木舟,影片是玩獨木舟的人划到外面然後船進水,他又沒穿救生衣差點GG。
不過看了這個影片也驗證了原廠說船不會沉這件事"Oru Kayaks are naturally buoyant and won’t sink even when submerged"。但如果深入險境,船不沉整個漂走或被大浪打應該也是沒救@@
2016年7月7日 星期四
台美版First WPF Desktop Application差異
最近開始研究wpf,先來個wpf的hello world
Walkthrough: My First WPF Desktop Application
一開始看msdn,應該是因為地區的關係,它會自動引導到台灣網頁
但是因為他的範例一直不能run完,又找不到可以下載的位置
誤打誤撞發現了美版msdn
本來以為美版msdn跟台版msdn只是外觀上的不同..
沒想到台版的msdn裡面竟然埋了bug...難怪不能run
至於為什麼會這樣呢....實在令人費解
btw...這個first application實在有夠難懂
Connecting to Data中2.的地方
美版msdn code(直接貼上)
Walkthrough: My First WPF Desktop Application
一開始看msdn,應該是因為地區的關係,它會自動引導到台灣網頁
但是因為他的範例一直不能run完,又找不到可以下載的位置
誤打誤撞發現了美版msdn
本來以為美版msdn跟台版msdn只是外觀上的不同..
沒想到台版的msdn裡面竟然埋了bug...難怪不能run
至於為什麼會這樣呢....實在令人費解
btw...這個first application實在有夠難懂
Connecting to Data中2.的地方
美版msdn code(直接貼上)
<Grid.Resources> <!-- Expense Report Data --> <XmlDataProvider x:Key="ExpenseDataSource" XPath="Expenses"> <x:XData> <Expenses xmlns=""> <Person Name="Mike" Department="Legal"> <Expense ExpenseType="Lunch" ExpenseAmount="50" /> <Expense ExpenseType="Transportation" ExpenseAmount="50" /> </Person> <Person Name="Lisa" Department="Marketing"> <Expense ExpenseType="Document printing" ExpenseAmount="50"/> <Expense ExpenseType="Gift" ExpenseAmount="125" /> </Person> <Person Name="John" Department="Engineering"> <Expense ExpenseType="Magazine subscription" ExpenseAmount="50"/> <Expense ExpenseType="New machine" ExpenseAmount="600" /> <Expense ExpenseType="Software" ExpenseAmount="500" /> </Person> <Person Name="Mary" Department="Finance"> <Expense ExpenseType="Dinner" ExpenseAmount="100" /> </Person> </Expenses> </x:XData> </XmlDataProvider> </Grid.Resources> |
台灣英文版的msdn code(本來都沒換行...用notepad++整理了一下)
<Grid.Resources>
<!-- Expense Report Data -->
<XmlDataProvider x:Key="ExpenseDataSource" XPath="Expenses">
<x:XData>
<Expenses>
<Person Name="Mike" Department="Legal">
<Expense ExpenseType="Lunch" ExpenseAmount="50" />
<Expense ExpenseType="Transportation" ExpenseAmount="50" />
</Person>
<Person Name="Lisa" Department="Marketing">
<Expense ExpenseType="Document printing" ExpenseAmount="50"/>
<Expense ExpenseType="Gift" ExpenseAmount="125" />
</Person>
<Person Name="John" Department="Engineering">
<Expense ExpenseType="Magazine subscription" ExpenseAmount="50"/>
<Expense ExpenseType="New machine" ExpenseAmount="600" />
<Expense ExpenseType="Software" ExpenseAmount="500" />
</Person>
<Person Name="Mary" Department="Finance">
<Expense ExpenseType="Dinner" ExpenseAmount="100" />
</Person>
</Expenses>
</x:XData>
</XmlDataProvider>
</Grid.Resources>
2016年7月6日 星期三
2016年7月5日 星期二
ahk練習:task bar數字顯示
會有這個程式是為了配合好用的win快捷鍵win+{數字}
這個快捷鍵可以開啟數字所對應到的taskbar item
以上圖來說,win+1開啟chrome, win+2開啟evernote
但是如果使用習慣不好一次開了好幾個程式可能就不大好找了
ps. 同場加映熱鍵win+T可以輪流切換taskbar上的程式
win+shift+T可以逆向切換
2016年7月4日 星期一
滑鼠輔助器 mouseAux
不知道是不是因為我的滑鼠太爛,覺得滑鼠按鍵不是很好按
所以用ahk寫了一個程式可以用鍵盤的右Alt,Ctrl,Shift取代滑鼠的左鍵,左鍵兩下,右鍵
另外還順便測試了尋找滑鼠功能(把滑鼠移動到螢幕中心),對於螢幕很大或很多的人可能不錯用
所以用ahk寫了一個程式可以用鍵盤的右Alt,Ctrl,Shift取代滑鼠的左鍵,左鍵兩下,右鍵
另外還順便測試了尋找滑鼠功能(把滑鼠移動到螢幕中心),對於螢幕很大或很多的人可能不錯用
windows.h in VC2005
VC2005要compile需要另外安裝平台開發套件才有windows.h可以用。如果在編譯VC2005專案時出現找不到windows.h可以參考本篇的解決方式。
2016年6月29日 星期三
2016年6月28日 星期二
Visual Studio省時間小撇步
看了這片6 Visual Studio Tips to Increase Your Productivity來摘要一下一些可以提升使用VS生產效率的方式
*productivity power tool
將無用行縮減25%
存檔時自動格式化(等同於使用ctrl+k, ctrl+d)
2016年5月23日 星期一
2016年5月13日 星期五
將網頁加入Start,以chrome開啟
win10的start有點像桌面,但是可以隨時叫出來不用把視窗全部縮小(其實用win+D來放大縮小所有視窗也是蠻簡單的)還蠻好用的。但是他原生的磚s還蠻沒用的,把它移除之後加入自己喜歡的磚就可以體驗它的好處了
2016年5月12日 星期四
pip安裝whl問題
如果有安裝比較新版的python,可以在cmd中輸入
python -m pip install -U pip
以更新pip
因為要安裝python的模組,在http://www.lfd.uci.edu/~gohlke/pythonlibs/下載了.whl檔案
安裝完pip後
在cmd中輸入指令
C:\Program Files\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\Scripts>pip.exe install <.whl path>出現下列錯誤訊息
"Fatal error in launcher: Unable to create process using '"""
試了半天之後才發現不能用winPython,而是要用Python路徑下的pip。用下面指令就可以順利安裝了(感動~
C:\Users\simon\AppData\Local\Programs\Python\Python35\Scripts>pip install D:\py\matplotlib-1.5.1-cp35-none-win_amd64.whl
python -m pip install -U pip
以更新pip
因為要安裝python的模組,在http://www.lfd.uci.edu/~gohlke/pythonlibs/下載了.whl檔案
安裝完pip後
在cmd中輸入指令
C:\Program Files\WinPython-64bit-3.5.1.2\python-3.5.1.amd64\Scripts>pip.exe install <.whl path>出現下列錯誤訊息
"Fatal error in launcher: Unable to create process using '"""
試了半天之後才發現不能用winPython,而是要用Python路徑下的pip。用下面指令就可以順利安裝了(感動~
C:\Users\simon\AppData\Local\Programs\Python\Python35\Scripts>pip install D:\py\matplotlib-1.5.1-cp35-none-win_amd64.whl
2016年4月30日 星期六
龍洞筆記--就是5.13,赤頭
今天跟東哥只有兩個人,實力差不多(缺繩槍)
看地圖想說後門有些5.9 .10的去玩玩
沒想到老人牆那邊整個灘掉不能爬,想去浪之外又找不到路QQ
正想說要從黃金谷繞過去正好在路上遇到高手佩兩人,又被撿回來爬後門
看地圖想說後門有些5.9 .10的去玩玩
沒想到老人牆那邊整個灘掉不能爬,想去浪之外又找不到路QQ
正想說要從黃金谷繞過去正好在路上遇到高手佩兩人,又被撿回來爬後門
2016年4月14日 星期四
一片玻璃的差異
剛好在研究鏡頭的轉接的時候看到Roger Cicala的一篇文章The Glass in the Path: Sensor Stacks and Adapted Lenses
大概是在說感光元件前面的那塊玻璃厚度對成像品質的影響,結論是影響還蠻大的。(其實本來是想在3/4的原件上加上轉接環使用全幅的鏡頭)
尷尬的是不同的感光元件(不是很確定相同大小不同廠牌的元件前面玻璃厚度,應該是不一樣)前面的玻璃未必一樣厚(差異可能還不小咧)。
他們為了這件事情還把一台相機感光元件前面的玻璃拆掉XD(話說我研究所的時候也做過這件事情,只不過拆的是webcam鏡頭後面的小玻璃)
所以不同廠牌的鏡頭雖然可以用轉接環互相接來接去,不過這還是玩玩就好,成像品質不保證會好喔!
大概是在說感光元件前面的那塊玻璃厚度對成像品質的影響,結論是影響還蠻大的。(其實本來是想在3/4的原件上加上轉接環使用全幅的鏡頭)
尷尬的是不同的感光元件(不是很確定相同大小不同廠牌的元件前面玻璃厚度,應該是不一樣)前面的玻璃未必一樣厚(差異可能還不小咧)。
他們為了這件事情還把一台相機感光元件前面的玻璃拆掉XD(話說我研究所的時候也做過這件事情,只不過拆的是webcam鏡頭後面的小玻璃)
所以不同廠牌的鏡頭雖然可以用轉接環互相接來接去,不過這還是玩玩就好,成像品質不保證會好喔!
2016年4月12日 星期二
2016年4月8日 星期五
include找不到父路徑的檔案
很神奇的事情,include的路徑順序在引號的狀況下應該是
前置處理器會依此順序搜尋 Include 檔:
- 在包含 #include 陳述式之檔案所在的相同目錄中。
- 在目前開啟 Include 檔的目錄中,依開啟的相反順序搜尋檔案。搜尋會從 Include 檔的父目錄開始,並向上繼續搜尋所有上層 Include 檔的目錄。
- 依循每個 /I 編譯器選項所指定的路徑。
- 依循 INCLUDE 環境變數所指定的路徑。
2016年4月7日 星期四
visual studio 專案版本
win8/10非分頁記憶體洩漏
今天在處裡客戶問題的時候,其中一個是無法指派非分頁記憶體
上網搜尋一下意外找到其他可能把記憶體吃光光(用Task manager 看記憶體使用率99趴)的原因,是一個叫NDU(Windows Network Data Usage Monitoring Driver)的東西在作怪。
上網搜尋一下意外找到其他可能把記憶體吃光光(用Task manager 看記憶體使用率99趴)的原因,是一個叫NDU(Windows Network Data Usage Monitoring Driver)的東西在作怪。
2016年4月1日 星期五
2016年3月30日 星期三
Object Initializer 物件初始器
有時候需要初始化物件並且設定很多屬性
印象中有這種東西,後來才發現是跟VB的With搞混
後來從討論串中發現C#沒有With這種方便的東西
C#沒有這種東西,但是在初始化物件的時候可以用Object Initializer
myObject = new myClass()
{
par1 = val1,
par2 = val2,
....
};
一次設定很多屬性,或是object名子很長可以用define或是下面的方法縮寫
var z = Alpha.Beta.Gama.Eta.Zeta;
a = z.ZetaPropertyA;
b = z.ZetaPropertyB;
c = z.ZetaPropertyC;
印象中有這種東西,後來才發現是跟VB的With搞混
後來從討論串中發現C#沒有With這種方便的東西
C#沒有這種東西,但是在初始化物件的時候可以用Object Initializer
myObject = new myClass()
{
par1 = val1,
par2 = val2,
....
};
一次設定很多屬性,或是object名子很長可以用define或是下面的方法縮寫
var z = Alpha.Beta.Gama.Eta.Zeta;
a = z.ZetaPropertyA;
b = z.ZetaPropertyB;
c = z.ZetaPropertyC;
2016年3月25日 星期五
SSD筆記
SLC,MLC,TLC: single/multi/triple bit per cell ; single-level-cell (越多製造成本越低)
TLC用到3D NAND技術
把更多資料塞到一個cell中會使電壓間距變小,因此需要更小心的控制與除錯,。因此造成讀寫更慢,更耗電,使用壽命更短
TLC因為讀寫速度的先天限制,可能會有buffer暫時讓user讀寫,當buffer滿了,速度會明顯下降(例如編輯影片等大檔案操作)
(結果還是不知道要買哪個M牌 BX200 Mx200 F牌F300)
TLC用到3D NAND技術
把更多資料塞到一個cell中會使電壓間距變小,因此需要更小心的控制與除錯,。因此造成讀寫更慢,更耗電,使用壽命更短
TLC因為讀寫速度的先天限制,可能會有buffer暫時讓user讀寫,當buffer滿了,速度會明顯下降(例如編輯影片等大檔案操作)
(結果還是不知道要買哪個M牌 BX200 Mx200 F牌F300)
2016年3月24日 星期四
訂閱:
文章 (Atom)