2014年10月29日 星期三

不要連環呼叫的原因

之前看clean code有看到不要做
a.b.c.d這種呼叫
那時候也不知道為何
最近在改code的時候新增了一些property
例如本來是直接access
public A as cA 但因為需要從不同的角度觀察A,需要A1與A2兩種跟A相關的property
改成
public property A1 as cA
  set(value as cA)
    ... 
    m_A = setOp1(value)
  end set
  get
     return getOp1(m_A)
  end get
end ppoperty

public property A2 as cA
  set(value as cA)
    ... 
    m_A = setOp2(value)
  end set
  get
    return getOp2(m_A)
  end get
end property

private m_A as cA

但因為有程式直接修改了A的元素
.A.B = newB 變成
.A1.B = newB 這麼做並不會呼叫
  set(value as cA)
    ... 
    m_A = setOp1(value)
  end set
只會呼叫
  get
     return getOp1(m_A)
  end get
這時候get出來的objet跟m_A是脫離的,對他修改並不會影響m_A
應修改為
dim _A1 = .A1
_A1.B = newB
.A1 = _A1
如此才能正確設定 .A1的value

不要連環呼叫的原因

2014年10月28日 星期二

用p4merge合併 -- setup 篇

git 好像是沒有內建合併器@@~

如果branch分支之後,master(parent branch)有被修改(新的commit)當要把branch合併到master中
在merge之前要先將branch切換到master(要合併到的)branch上
在git gui選local merge
合併有可能出現conflict的狀況
這時候就需要引導merge了
git會show出有conflict的地方
例如
v2
<<<<<<< HEAD
v3
=======
v2.1
v2.1.1
>>>>>>> v2

上面是master版本,下面是branch的內容
用git gui 不知道要怎麼跟他說到底要怎模合併,只知道檔案會被改成上面的內容@@~
只好選abort merge
google找到了p4merge這個合併器
http://www.perforce.com/downloads/Perforce/20-User
選擇P4V: Visual Client下載
安裝好之後還需要到 git bash設定
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd '"C:\\Program Files\\Perforce\\p4merge" $BASE $LOCAL $REMOTE $MERGED'
有點小麻煩,重點是在git gui中,顯示conflict的地方案右鍵可以用mergetool,但卻疑似因為我的路徑有空格找不到...
只好在bash底下用 git mergetool來開了
開了之後她會show local跟remote的內容跟不一樣的地方
在最下面在編輯合併後的內容

用p4merge合併 -- setup 篇

利用git history找出程式被改壞的地方

之前一直聽過,前些陣子因為183的說明開始用
git是資料夾base的,要備份的話可以最白癡的直接複製資料夾
但這些日子除了天天commit,打打說明以外好像跟沒用git沒啥差別
直到昨天
話說最近因為要離職了準備把手上的工作ending一下
因為離職在即,改道比較晚,加上身體有點不舒爽
不知怎麼的就把之前寫好的東西改壞了!!~
哭哭,理性的trace code翻片所有可能出錯的地方完全找不到
這時候終於用上git了
查看版本的history可以比較之前版本跟現在的差異處
瀏覽了差異處一樣是沒有頭緒(但總比整個專案翻快得多了)
最後直接回覆成之前commit的版本,確認錯誤是在這次修改造成的(這個操作其實有點問題,應該要在想回復的點上建立新的branch再直接切過去,不然之後的修改都會不見@@~幸好有聽183的先備份了)
恩...的確是這次造成的
再回去check比較的code...終於找到唯一可能的修改
但當下還是不相信這個修改可能會有問題,把先前的版本貼回去之後,問題果然解決了!~鐵錚錚的事實啊!~只好再去思考到底哪裡寫錯了
原來是我用一個value去new一個object但是其實要用object去new才對啊!!!
dim obj2 as new obj(obj1.value)
改成
dim obj2 as new obj(obj1)
就OK了...因為也可以用value去new,但除了value以外其他的值都會是default...語法上正確,邏輯GG~

利用git history找出程式被改壞的地方

2014年10月16日 星期四

增加滑鼠控制性的雙螢幕設定方法

一言以蔽之,將螢幕的相對位置改成只有一個小交點,這個點就是連接兩個螢幕的隧道。
這條隧道開在主螢幕的左右下角最好,滑鼠最不會去的地方

增加滑鼠控制性的雙螢幕設定方法

[.NET]加入使用者控制項

使用者控制項是包含了UI的類別
可以在VS的UI設計介面中被加入
用使用者控制項和一些UI元件跟邏輯,避免Code的複製

操作方式
[建立使用者控制項]
  1. 專案>加入>使用者控制項
  2. 編輯控制項
      *使用者控制項的class須為public class,否則後續加入後會看不到控制項
  3. compile專案,產生.dll/.exe檔
[將控制項加入工具箱]
  1. 在工具箱中右鍵>選擇項目
  2. 在.net framework的Tab底下,選擇瀏覽
  3. 找到剛剛產生的.exe/.dll(在專案資料夾/bin/compile設定)加入
  4. 以命名空間(方案名稱)/名稱(control名稱)找到元件
  5. 在工具箱中即可找到元件

[.NET]加入使用者控制項

2014年7月3日 星期四

dvorak

about light

because i've changed to dvorak keyboard and pingyin Chinese typing mode. i can just type chinese in extreme slow speed, and a little faster in English.
LED's effeciency is lower then 100 lm/W u can see it in Philip and everlight catalog
the fluorescent light's effecience is about 100 lm/W the 節能標章have meansured them
and LED in low quality may have low CRI(color represention index, may lower then 80) or they don't even measure it
the general light level
office lighting
good article in mobile01
a thesis about light color
Lux ≒ 2.5 ×  2^EV = 2.5 * N^2/t
N: relative aperture (f-number)
t: exposure time in s
if you use N@4.0 Iso@100 then Lux = 40 * 1/t(in sec)
about EV in wiki

about light

2014年6月25日 星期三

[散步]仙跡岩

仙跡岩,在景美捷運站附近
從景美站二號出口出來大概十分鐘路程
主要入口在景興路243號處
步道平緩好走,沿路都燈火通明(大概有一兩盞路燈壞掉)
全程來回一小時左右,蠻適合吃飽晚餐來晃晃
再去景美夜市吃消夜XD~

[散步]仙跡岩

2014年6月17日 星期二

[字典]LINGOES 靈格斯

不得不說對岸真的有很多好用的軟體,又是同文
這個靈格斯是從以前用到現在換了很多翻譯軟體中最好用,又免費的一個
可以到官網下載
他的亮點有

下載不同的辭典庫

到官網可以下載不同語言的辭典庫,漢英,英英,甚至是德與法與xxx一應具全
因為辭典庫已經下載,靈格斯完全可以離線使用!

即時劃辭/取辭/剪貼簿翻譯

字典軟體不稀奇,靈格斯的即時翻譯功能是他的一大亮點!看落落長的英文文章,全篇翻譯(例如用谷哥翻)覺得翻的詞不達意看起來痛苦。一般的網路字典又需要來回切換,很不方便。靈格斯的即時翻譯功能,只要遇到不懂的字,把她反白/選取/複製到剪貼簿,馬上就可以查到結果,也省了key in的時間。

調整字型大小

有些軟體很自信,忘了使用者可能因為只用習慣不同對字型大小有不同需求。靈格斯在選單中的設定>外觀,可以分別調整使用者介面跟內容的字型大小,甚至是字型,非常友善。

字典模式與即時翻譯可以自行決定不同的辭典來源

有時候在即時查詢模式只想得到快速的解釋,如果覺得奇怪或不足會再切換到字典查詢(也許查詢依些比較大部頭的原文辭典可以了解一些英漢字典中沒有提到的細節)。

其他甚至還可以做到發音等等的,功能實在很多,但上面提到這些就足以應付所需了!~

[字典]LINGOES 靈格斯

[計畫]北大武山

北大武山,海爬3092公尺,南部第一高峰
步道總長9k(但加上之前莫拉克)
首先就是要先查一下爬北大武山有哪些限制條件,像爬玉山要不就是要很衝一日來回(還是有總量管制)要不就拼人品去抽超難抽的排雲山莊
爬雪山就要申請369,不然也是有人一日往返,單日爬升1900m…
查了一下,要申請的文件有入山證(警政署一周前申請)跟大武山自然保留區的申請,山屋似乎不是必備條件,檜谷山莊外面蠻適合紮營的樣子
大武山自然保留區有人說要申請,有人說只要不爬超過北大武山就不必,所以又上網查證了一下
首先去林務局(自然保留區主管機關))看看
關渡,紅樹林也都是自然保留區…進入”理論上”也是要申請(淡水的申請量跟承載量都是0 XD~) 

在查證了一下大武山自然保留區的範圍


剛好跟爬北大武的路線有”切到”
再加上查了一下有申請的人數

整個就是沒人申請的狀態…對照客滿的檜谷山莊…所以應該是只要入山證就OK了吧
其他關於北大武山
林務局也有出摺頁,一份50元(97年版本)
但裡面有些資料比較舊,需要再查證,例如說關於檜谷山莊的說明
 上面是說不必申請,but從2012就開始需要線上申請了
不過現在檜谷山莊已經改成抽籤制的了,每天有43個名額。禮拜六晚上爆滿是常態@@~
這篇紀錄似乎不錯,至少再找登山口的部分,筆記一下
登山補給站上面也有關於登山口位置的討論和航跡,好像是小轎車也能到二登,但要先開到前面迴轉再停車

[計畫]北大武山

2014年6月13日 星期五

筆架山連峰

一次跟家人到北宜上面賞櫻花,順道爬了二格山,展望不錯可以看到101那邊
那天賞完櫻花天氣時間也不早了,大概四點多吧,遇到一對夫妻說是要走到猴山岳
下來又看到筆架山的指示牌,有點好奇
下山之後查了一下,筆架山是北部三大岩場之一,另外還有皇帝殿跟五寮尖(好像都有去過??)
在某個悠哉晴朗(現在一直下噢,要一個晴朗都很難)的假日突然心血來潮想來爬一下
本來想說要去木柵站搭666公車到石碇區公所,再爬到貓空坐覽車下來(所以其實可以騎機車去木柵站換快一些,坐捷運要繞一大圈@@~)
後來因為太臨時約不到人一起爬,然後老爸正好又沒事,順道在大家到石碇晃晃吃豆腐喝豆漿
每次來到石碇都覺得這是個美麗的地方,也不顧今天行程長短(自己走有點太free....)跟家人在石碇享受早晨的寧靜,在崩山溪跟烏塗溪的叉口嫌晃,看著早起的台灣藍鵲在溪水中玩鬧,在石碇國小閒晃,就這樣過了一兩個小時
順著石碇國小旁邊的路,慢慢晃到登山口。這一帶似乎有很多墓,路上有很多掃墓服務處。
經過一個奉茶的莊稼人,看他們在山上種田似乎有點有趣。主人很熱情的招呼我喝茶,讓我有點不知所措。喝完茶後有點亂了方向,在主人的指點之下找到了正路。
從這邊上去不會經過摸乳巷,直接上到稜線找到救援樁
經過西帽子岩山,炙子頭山,到筆架山
筆架山的山頭是個裸岩,視野絕佳!台灣的中級山應該就屬這一代的展望最好,而筆架山站在上面,附近完全看不到比他高的山頭,回望可以看到來時的稜線!
在筆架山上面遇到一對母子,說是從二格山那邊上的,據說兩小時內就可以攻頂了!
從二格山再往猴山岳,到猴山岳天還沒黑,這邊101看的還蠻清楚的,不知道來這邊看跨年煙火再去筆架山看日出怎麼樣
雖然天氣不是很好,但還是做在最後的展望點,欣賞著夕陽。淡水河被夕陽的餘暉染成金黃色!當然,天黑之後拿出準備好的頭燈乖乖摸黑下山(大概剩下200公尺的山路和700公尺的柏油路)最後到達指南宮纜車站

筆架山連峰

關於桌球~

這似乎是我第一篇桌球文XD~
是說桌球這個運動可以追溯到好久好久以前...有多久呢?
大概是國中時候吧,有在錦中地下室跟魏猴子(後來好像跑去師大打校隊!!)跟許孟跟劉則他們打過的印象
差不多的時間家裡的頂樓加蓋有張桌球桌,假日無聊會跑上去一家人打打球,雖然空間不大不過還蠻不賴的

關於桌球~

2014年6月5日 星期四

[雪山]翠池求生記



翠池
話說中秋節跟賽亞去爬雪山,路途漫長。雖然早早三點就起床四點上路,但中午因為實沒力,在369睡了一個多小時。下午從369上雪山的路走的超慢,大概一小時只走了500m。到雪山主峰天已經快黑了,走過主峰跟鞍部之間的瘦稜(這裡還蠻驚險的…)看到了傳說中的碎石坡。因為天色已經有點黑了,看不到我們的目的地,翠池山屋。

[雪山]翠池求生記

[筆記]UI工具Blasamiq

用來設計是窗使用者介面的程式,雖然我目前是用power point來做,但看起來不專業又缺少一些原件可以使用(其實也是不錯用啦^^~)但這個Blasamiq看起來不錯用提供很多UI圖示的library,還提供七天試用可以來玩看看~

[筆記]UI工具Blasamiq

2014年6月4日 星期三

[筆記]鄭志凱:青春作伴,創業去了

  看了鄭志凱關於創業的文章,年輕真的是創業的本錢,年輕沒有家累,一個人吃飽全家飽。年輕時候的失敗可以學到經驗,增加往後成功的機會。現在要創業,只要有idea(還要敢去做),其他資源似乎都不是問題,程式有人可以幫忙,測試有人可以幫忙,資金有天使基金,操作有加速器。真的只需要好點子跟勇氣。
  但文中也說了,台灣因為市場小,不適合作薄創新,一個小idea,小方便,在台灣的小試場所能創造的利潤就真的很小。需要一個大市場才能將一個小idea產生的利潤放大到足以養活一間公司。一個大的社群配合好的分工才能創造出精緻的工藝!

[筆記]鄭志凱:青春作伴,創業去了

口碑行銷自動化--幾何貓

  讀了PunNode關於網路行銷自動化軟體GEOMETRY CUBE的幾何貓的文章。之前有聽過在做網路行銷的人,去找部落客幫代理的產品打廣告的事情,那個價碼還真是嚇人,一篇有破萬的樣子....
  剛好剛剛看到這篇介紹數位行銷操作的軟體,似乎可以自動的在論壇追蹤關於目標產品在論壇上評價的變化,並且自動產生報表(也就是說如果沒用這套軟體,有些人的工作就是整天逛各大論壇,看看自家產品在上面被如何討論,需要的時候再補刀滅火之類的)
  看到文章的後面,覺得這應該是個充滿了八卦的訪問,連淡定紅茶竟然也是行銷操作的產物@@~連PTT的帳號也會有人買賣

 

口碑行銷自動化--幾何貓

2014年5月30日 星期五

免費導航軟體oruxmaps

先筆記一下
下載openstreet的17圖層就夠精細,但不能縮小不是很好用
再搭配谷哥地形的15圖層就不錯用了
可以匯入登山紀錄會附的.gpx航跡檔
替換online map的xml檔,更新後可以抓到台灣百年圖輯(內有經建版地圖,登山常用)
http://gis.rchss.sinica.edu.tw/gps/?p=1680

免費導航軟體oruxmaps

2014年5月23日 星期五

[VB]shadow vs override

因為List類別雖然好用,但卻沒有提供事件(List發生了甚麼是外面都不知道)因此想說幫他加個事件,有幾個選擇
1. 直接繼承List,重寫Add
2. 繼承IList,時做全部的介面
3. 開新類別myList,建立私人成員_List,只需開放想開放的方法

[VB]shadow vs override

2014年5月22日 星期四

雨鞋登山

之前有穿過雨鞋登山,but每次穿完大拇指都瘀青@@~(最近穿登山鞋也會)
正好間天跟同事聊到,它提供了個網址給我,是台灣雲端踏青家族的討論區
真的是很威,可以把穿雨鞋爬山這件事分析的這麼徹底XD~

雨鞋登山

[VB]AndAlso與OrElse

在VB裡面連接邏輯關係是用And Or XOR做連結,然而VB提供了AndAlso與OrElse來增強And跟Or的運算
在And中,只要任意元素為False,則結果必定為False
在Or中,只要任意元素為True,則結果必定為True
AndAlso與OrElse可以在第一個元素就可以決定邏輯關係的結果時(for AndAlso 第一個結果為False直接輸出False,for OrElse 第一個結果為True直接),不去做第二個元素的判斷,增加速度也可以免去一巢狀邏輯的狀況
例如:

A And B
A AndAlso B
得到相同的結果,但當A為False時就不會做B

[VB]AndAlso與OrElse