網頁

2015年12月16日 星期三

meshmixer

產生樹狀支柱的利器

放大縮小:滑鼠旋鈕。
旋轉:按住滑鼠右鍵,再移動滑鼠
移動視角:按下滑鼠中間旋鈕,再移動滑鼠

Tip Diameter為支撐材與3D物件的接觸面。
數字越大接觸面就越大,建議參數為0.2~1mm之間。

Post Diameter支撐材的粗細,建議的參數為0.8~3mm之間。

Density為支撐材生成的密度多寡,常用的參數為10~30。

Base Diameter為地面底座的大小設定,2mm以上。


2015年12月9日 星期三

Arduino SPI 12864 OLED

經實際測試,只要使用 Digital pin 即可
查詢對映 SPI 是沒必要的



文件
網路查詢
實際測試

SPI 12864 OLED Arduino UNO SPI MEGA 2560 SPI MEGA 2560
1 CS D10 SS D53 SS D31
2 RST D8
D50 MISO D29
3 CD D9
D51 MOSI D27
4 D1 D11 MOSI D46 PWM D25
5 D0 D13 SCK D52 SCK D23
6 VDD 5V



7 GND GND



8 X




2015年12月8日 星期二

MPLAB

為了解決下列問題
試了好多東西
更新了 IDE 從 MPLAB IDE 到 MPLAB X IDE
試著安裝不同的 Language Toolsuite
從 HI-TECH 之 PICC_16_9_80 到 PICC_18_9_80
發現 PIC16F877 使用 PICC_16_9_80,PIC18F4520 使用 PICC_18_9_80
還安裝過 mplabc18-v3.47-windows-lite-installer
安裝 xc8-v1.35-full-install-windows-installer
最後發現 function name 開頭使用底線造成如
void _LcdWriteCmdHi(unsigned char cmd);


以下是其中的一些過程,雖然對這個解決問題沒有直接幫助
但是以後可能會用到吧!

MPLAB 開發環境分為 MPLAB IDE 和 MPLAB X IDE

ICD3 更新驅動程式軟體
瀏覽電腦上的驅動程式軟體
讓我從電腦上的裝置驅動程式清單中挑選
 for MPLAB X IDE
C:\Program Files (x86)\Microchip\MPLABX\v3.10\Switcher\64Bit\winusb\amd64
Microchip Tools\MicrochipWinUSB Device
 for MPLAB IDE
C:\Program Files (x86)\Microchip\MPLAB IDE\ICD3
Microchip Tools\Microchip Custom USB Device



使用 MPLAB IPE 挑選 IC

The programmer could not be started: Could not acquire hardware tool communications resources: ICD3PlatformTool SN#JIT104139330

1. Right Click on the project > Click properties.
2. Select ICD3 on the left side.
3. Click the reset button on the right side.


MPLAB X Simulator
1. Select Simulator as the Hardware Tool1. 
1.a Right Click on the project > Click properties.
1.b. Click Conf:[default]
1.c Under “Hardware Tools”, verify that Simulator is selected
1.d Click Simulator setting Instruction Frequency(Fcyc)
2. Setting the Simulator to start at the beginning of main() function
2.a From the “Tools” pull down menu select “Options”
2.b Select the Embedded icon
2.c Select the “Generic Settings” tab
2.d Ensure the “Debug startup” is set to ‘Halt at Main’
3. Menu/Window/Debugging/Stopwatch

MPLAB IDE Simulator
1. Debugger/Select tool/MPLAB SIM
2. Debugger/Settings
3. Debugger/Stopwatch


安裝 picc_18_9_80_win 使用 Lite 版
MPLAB IDE
選擇 Microchip C18 Toolsuite

At safe mode of Windows 8 64bit, you could install XC8 v1.35

MPLAB IDE
在 Set Language Tool 中登記 Microchip XC8 Toolsuite
regsvr32 /s "C:\Program Files (x86)\Microchip\xc8\v1.35\bin\MPLABXC8.dll"

2015年10月22日 星期四

2015年9月30日 星期三

40147的真值表

以為買到四顆壞掉的 CD40147
原來真值表示負邏輯
0: High Level
1:Low Level

2015年9月25日 星期五

電容

低頻:電解電容
高頻:陶瓷電容
定時OSC:麥拉電容,鉭質電容
DC to DC OUT - LOW ESR 電解電容
頻率補償常用麥拉或陶磁電容
大電源經過 會使用電解電容
小電源經過 會使用 鉭質電容

常用電阻值

5%
0.1
0.2
0.22
0.5
1
1.2
1.3
1.5
1.8
2
2.2
2.4
2.7
3
3.3
3.6
3.9
4.3
4.7
5.1
5.6
6.2
6.8
7.5
8.2
9.1

1%
4.7
5.1
10
10.2
10.5
10.7
11
11.3
11.5
11.8
12
12.1
12.4
12.7
13
13.3
14
14.3
15
15.4
15.8
16
16.2
16.9
17.4
17.8
18
18.2
18.7
19.1
19.6
20
20.5
21
21.5
22
22.1
22.6
23.2
23.7
24
24.3
24.7
24.9
25.5
26.1
26.7
27
27.4
28
28.7
29.4
30
30.1
30.9
31.6
32.4
33
33.2
34
34.8
35.7
36
36.5
37.4
38.3
39
39.2
40.2
41.2
42.2
43
43.2
44.2
45.3
46.4
47
47.5
48.7
49.9
51
51.1
52.3
53.6
54.9
56
56.2
57.6
59
60.4
61.9
62
63.4
64.9
66.5
68
68.1
69.8
71.5
73.2
75
75.5
76.8
78.7
80.6
82
82.5
84.5
86.6
88.7
90.9
91
93.1
95.3
97.6

2015年9月1日 星期二

木質 PLA

參考 woodFill filament

0.4mm Nozzles
to print with a bigger nozzle anyways, it is awesome!
performs better at 0.25-0.3mm layer height, 
printing speeds of about 50-80 mm/s.
a little higher retraction speed and distance might be needed.

2015年6月29日 星期一

3D列印調教

牽絲太多

預擠太少

最後的成功

部分失敗的殘骸,當然這只是部分


調校3D印表機

要維持一個紙張的厚度不適那麼容易,有諸多的因素:
  • 底板不平,當發現底板是凸的,真不知該說些什麼?最後去買一塊玻璃,雖然它也沒有很平,但至少可以接受。
  • 當噴頭還夾著塑料,是無法歸零的。
  • 三點決定一個平面,所以放鬆一個螺絲到最高,調整其餘三個螺絲。
  • 若所有的螺絲皆調到很鬆,彈簧的作用會不明顯,會導致列印時的震動。
  • 重要的 KISSlicer 參數
  1. 1st Layer Max Speed 太快會導致塑料沒有黏在底板,被噴頭拉起。
  2. Bed Roughness 太厚或太薄都會使第一層不平。
  3. Suck 太少會牽絲,過多可能會影響Prime。
  4. Prime 預擠太多,列印到一定高度時,物件會被噴頭撞倒,或失步。預擠太少,層與層的黏接太少,甚至塑料沒有黏在下一層,被噴頭拉起。

2015年6月18日 星期四

CFileDialog 的 Exception

CFileDialog 會產生下列例外,就不要理它吧!

First-chance exception at 0x76674598 (KernelBase.dll) in UrgPair.exe: 0x000006BA: RPC 伺服器無法使用。.

First-chance exception at 0x76674598 (KernelBase.dll) in UrgPair.exe: 0x800706B5: 不明的介面。.

First-chance exception at 0x76674598 (KernelBase.dll) in UrgPair.exe: 0x8001010E: 應用程式所呼叫了整理給不同執行緒的介面。.


2015年5月20日 星期三

KISSlicer

KISSlicer 入門教學
KISSlicer 跟噴頭高度有關的三個設定
KISSlicer 列印支架設定
http://diy3dprint.blogspot.tw/2015/01/x.html

Printer/Hardware
"Bed Size"設定成自己印表機的列印工作區大小。
"Bed Center"設定程工作區XY軸大小的一半。
"Bed Roughness" 其實這個設定值是用來增加第一層厚度的。譬如說層高設定成0.2mm,然後Bed Roughness設定成0.2mm,那第一層層高就會是 0.2 + 0.2 = 0.4mm。只有第一層會加厚,其他層的層高就不受影響。
"Z-Settle" 提高Z軸移動到要列印的起點,再下降列印,這樣可以讓印表機比較穩定得完成起始點的定位工作。設定成0.1。
"Z Offset" 用軟體來微調擠出頭歸零高度的。設 "0"

Printer/Firmware
設定擠出軸的定址模式,將 Firmware Type 設定成 "5D - Absolute E",使用絕對座標模式。

Printer/Speed
1st Layer Max Speed 列印第一層的最大速度,太快會導致塑料沒有黏在底板,被噴頭拉起。

Ptr G-code/prefix
M104 S<TEMP> ; 單純設定擠出頭目標溫度
G28 ; 擠出頭的位置規零
G1 Z5 F100 ; 將Z軸抬升5mm
M109 S<TEMP>; 強迫印表機要等待溫度到達目標之後,才能開始列印
M82 ; 要求印表機擠出軸(E軸)使用絕對座標模式
Ptr G-code/postfix
M104 S0 ; turn off temperature
G28 X0 ; home X axis
M84 ; disable motors

Material
"Diameter" 塑膠線材料的直徑。1.75mm
"Temperature -> Main" 擠出頭溫度設定。
"Temperature -> First Layer" 列印第一層時使用的溫度。有些朋友會把這個溫度稍加提高,以利底面與工作床緊密黏合。
"Keep-Warm" 待機溫度。列印完畢之後,手動設定的控制碼會把加熱頭關閉,所以這個參數變成無意義的數字。
官方文件:PLA擠出頭205度,熱床65度,ABS擠出頭240度,熱床110度
"Destring" 抗牽絲
"Prime" 預擠。 基本上就是把上次回抽抽回的塑料擠回。如果沒有特殊理由,設定跟回抽一樣的距離就好。預擠太多起始點會結成一球,太少會造成擠料太少,輕則上層倒塌,嚴重時會拉起塑料。
"Suck" 回抽。 當列印的線段印完,像後抽回擠出頭內的膠,可以幫助減少牽絲的現象。回抽的距哩,一般設在0.5~2mm之間。回抽距離太少,可能效果不夠好;回抽距離過長,可能損毀噴嘴。
"Speed" 回抽速度。依經驗,回抽速度在15mm/s以下,速度越慢效果越好。
"Min Layers" 一層至少要 n 秒的列印時間,以免產生塌陷的問題

Support
"Off / On" 這個設定值用來選擇粗支架的密度,最細的Ultra等級,就是粗支架根細支加一樣密。越密越容易讓細支架成功,但是也花費越多時間跟材料在支架的列印上,而且更難拆除。一般我都只用最稀疏的支架就可以了。失敗的原因一般都是擠料不順造成的,增加粗支架的密度,幫助並不
大。
"Support deg" 支架角度
"Inflate Support" 延伸支撐範圍
"Gap 間隙" 平常設在0.4mm或是0.6mm。
"Support Z-Roof" 支架高度上限,設成-1代表不設上限,如果設定成正值,就會限制支架的高度,超過高度就不產生支架。
'Sheath Main Support' 粗支架側牆側牆可以增加粗支架的強度,但是如果支架在工件的包圍之內,側牆會變的很難清除。
"Raft" Skirt是在正是列印之前,先在模型周圍列印一圈預擠,用來確保正式列印時,擠出頭能夠立刻吐膠。
Inflate Raft 2
Brim Dia 帽緣寬,可加大對底板的抓力,防止底部變形
Brim Ht 帽緣高
Fillet 漸進式帽緣

Style
"Skin Thickness": 壁厚。不論是頂面、底面,或是側面的厚度,都會大於等於這個設定。KISSlicer會自動計算頂面、底面得層數,還有外圈的圈數,來滿足壁厚中設定的厚度。
"Number of Loops":側面外殼圈數。圈數越多,側面殼會越厚,同時也越花時間。一般都設在3圈。"Skin Thickness" = "Number of Loops" * "Extrusion Width"
Extrusion Width" 線寬。線寬越細,模型理論上會越精細。但是受限於擠出孔的大小。當線寬小於擠出孔的直徑時,擠出的厚度有機會比我們設定的層高還要薄,會造成擠出的塑料沒有附著於上一層,導致列印失敗。初次嘗試列印時,建議要把線寬設定成擠出孔的直徑。線寬越大,速度越快,越粗糙,但是太細會造成太脆。
"Infill Extrusion Width":填充線寬。跟線寬一樣的問題,太細會造成附著失敗。建議一樣設定成擠出孔的直徑。
"Layer Thickness":層高。每一層的高度。初次列印建議先設大一些,0.3mm 或0.25mm。成功後再嘗試更薄的層高。層高越薄,片數相對越多、列印時間越長。一般玩偶、零件,我都使用0.2mm的層高,在解析度跟列印時間取得一個平衡點。一般建議75%的擠出孔,精細的使用50%的擠出孔
"Inset Surface"  "模型表面內縮" 有卡榫問題時設定為0.1mm"Infill":填充密度。一般建議設在 10~20% 之間就可以。20%就可以獲得相當好的強度,一般不需要設得更高。
Infill Style" :填充型態。通常我選擇"Octagonal"八角型。
"Loops go from inside to Perimeter":繪製外殼的時候,以由內而外的順序繪製。除非有特殊理由,要不然通常都會勾選這個項目。
Depth:0.00-1.00,表示列印外殼的起始和結束點之間是否重疊,0:有一些距離,1:重疊
Gap:表示列印圓周的起始和結束點的距離,0, 1(預設), 2
Jitter:這個參數對於圓形物件有特別的效果,模糊化接縫的角度,通常10度就夠了
"Wipe" :擦拭。
"De-String":抗牽絲。


在右上方物件表列裡按滑鼠右鍵,有選單可以用來改變擺放姿態。
選擇左上附近的 "Models+Paths"檢視模式,就可以預覽切片的結果。

Reprap Prusa i3

ramps 1.4(Arduino Mega2560 + RAMPS1.4 + A4988 x 4 + LCD
採用48L 42步進馬達
marlin韌體

列印技術 FDM熔融堆積耗材類型 PLA/ABS      
 列印尺寸 210*260*180mm 耗材直徑 1.75mm
 機器重量 10 kg 包装重量 13 kg
 噴嘴直徑 0.4mm噴頭溫度 0-260℃
 列印精度 0.05-0.35mm 定位精度 0.012mm

電源供應器(Power)  Output: 12v 20A

層高可印0.05mm,最小公差可控制在0.1mm以下

3M2090美紋膠帶是利用上面的紋路去吸附線料
PLA列印可不加熱 只要將平台調整好 基底層即可良好附著

解決ABS底層附著的問題,目前常用的解決方式有兩種,
1.用丙酮混ABS溶劑塗抹在3M 2090膠帶上
2.印棧板用夾子或用其他方式設法把棧板固定好


2015年5月19日 星期二

CCStudio

CCStudio v3.3 很麻煩的軟體, 只認 Windows XP
幸好發現 VMware with CCS 文章
試著使用 VMware Player 7.1
成功安裝測試
唯一有疑問的是:
裝置管理員下 Texas Instruments XDS560 PCI JTAG Emulator 有驚嘆號

順便解決 Tina Design Suite v8

2015年5月15日 星期五

Tina Pro 版本

TINA Design Suite v10
Requires Windows XP/Vista/7/8

TINA Design Suite v9.3
Requires Windows 98/NT/2000/XP/Vista/7

TINA Design Suite v8
Requires Windows 98/NT/2000/XP/Vista

TINA Design Suite v7
Requires Windows 98/NT/2000/XP

TINA PRO for Windows v6
Requires Windows 95/98/NT/2000/XP

2015年5月13日 星期三

SolidWorks 筆記

檢視/基準面
Ctrl+7 or Ctrl+D 等角視
Ctrl+8 正視於
連續兩次Ctrl+8, 正視於的反面

旋轉 滑鼠中鍵 or 上下左右鍵
平移 Ctrl+中鍵 or 上下左右鍵
Shift+中鍵 縮放
滾輪 即時縮放
中鍵快點兩下 最適當大小

F 回畫面正中央

圓的智慧型尺寸
導線/圓弧條件 可選 圓心,最小,最大

特徵管理員(設計樹)/時間線
特徵管理員(設計樹)/註記 顯示註記, 顯示特徵尺寸, 顯示參考尺寸
再尺寸內填寫 ="變數"
特徵管理員(設計樹)/數學關係式 管理數學關係式

點 修剪圖元 再用滑鼠畫線穿越要修剪的線
幾何建構線

置於線段中點 點與線
使重合/共點 點與點 點與線
共線/對齊 線與線
水平放置 點與點
垂直放置 點與點
同心圓/弧
貫穿 不同的草圖才能貫穿

連線時, 回去摸點變弧, 圓心固定在點的水平或垂直線上
不要選圓心, 選圓弧

線段按右鍵, 可以選中點

1. 選要鏡射之線
2. 按 鏡射圖元
3. 選 鏡射相對於

選兩條線加一中心線, 再加入 相互對稱 限制條件

草圖圓角, 選兩條線

直線草圖複製排列/環狀複製排列
先選圓心, 再選複製排列的圖元

直線複製排列
先選一方向, 再選一特徵

旋轉填料 草圖畫一半

特徵/鏡射
1. 選基準面
2. 選 鏡射特徵(如除料-伸長)

單一線 伸長除料會變成面

異型孔精靈/鑽孔
特徵/圓角/導角

掃出填料 或 掃出除料
一個輪廓(草圖) 沿著另一草圖的路徑

疊層拉伸
至少要兩個面
一個平面, 一條路徑, 一個終點

檢視/暫存軸 圓柱之軸

參考圖元 在新草圖中參考之前的舊草圖(可於平行的平面),即複製舊草圖的元素到新草圖

偏移圖元 可以自製薄殼

參考幾何/基準軸 選兩個基本面

參考幾何/基準面
1. 選 基本面 加一距離, 產生平行基本面
2. 選 基本面 加一 軸, 指定角度, 產生一角度之基本面
3. 選兩個基本面, 產生中間之基本面
4. 選 兩條在不同基本面上的線

做一線 選 特徵/肋材, 可另加拔模角度

特徵/拔模
先選一中立參考面, 再加選要拔模的面

特徵/薄殼
選擇移除面

剖面 選擇基本面
剖面視角 可以隱藏已經成型的原件,使得繪製草圖時不會受到干擾

草圖畫錯平面時, 在草圖上按右鍵, 選編輯草圖平面, 再選擇正確的平面

點選 過多的定義, 再點選診斷, 此時可參考不同的解決方案

特徵管理員/組合件/零組件(參考舊零件之新零件) 按右鍵 顯示外部參考
此時可鎖住新零件之尺寸,改變舊零件之尺寸

參考幾何/點
參考幾何/座標系統

檔案/從零件產生工程圖
插入/表格/鑽孔表格


2015年5月1日 星期五

可惡的 KB3045999

安裝 KB3045999:x64 系統的 Windows 7 安全性更新(2015/4/14)
執行何嘉仁美語的互動光碟會產生下列錯誤
NXiDEA Technologies
The app was unable to load a required virtual machine component.
Please contact the publisher of this app for more information.


2015年4月14日 星期二

聽到的好話

讓人與人之間因為貨物與勞務的交換而累積出越來越深厚的情感,讓人與人的情感關係比人與人之間的貨幣關係更深厚。

人生的跑馬燈不會出現賺了多少錢,擁有多少豪宅,多少名車。

2015年3月13日 星期五

73855

美國心理學者Albert Mehrabian提出,三種溝通工具的影響比率分別是:
語言7%、聲調38%、身體語言55%。

看來對於一個長期寫程式的人,相當不利。

幫人分析解決問題,不如一起吃個飯,喝杯茶。


2015年3月6日 星期五

java xml utf8

java 在處理 utf-8 編碼的 xml 檔時,會出錯!
因為不認得 bom。
當然寫檔時也要手動寫入 bom。

2015年2月6日 星期五

android 語系

1. File/new/Other...
2. Android/Android XML File, 按 Next
3. File: 輸入 strings.xml, Root Element:resources 按 Next
4. 加入 Language:zh
5. 加入 Region:tw
6. Folder: /res/values-zh-rTW
7. 產生 /res/values-zh-rTW/strings.xml


AVD 的鍵盤輸入

進 Eclipse 點 Window/Android Virtual Device Manager
編輯虛擬機器之 Keyboard 設定
勾選 Hardware keyboard present:使用開發機器的實體鍵盤
  可方便輸入英文和符號,但無法使用中文
  原本要按 Shift 的要加按 Alt
取消勾選 Hardware keyboard present:使用Android的鍵盤
  可安裝中文輸入法,但很難操作

下載adnroid注音輸入法

安裝輸入法
C:\eclipse4_64\android-sdk-windows\platform-tools>adb install ZhuYinIME_2010030801.apk
1101 KB/s (1012516 bytes in 0.897s)
        pkg: /data/local/tmp/ZhuYinIME_2010030801.apk
Success

設定輸入法
設定/語言與輸入設定/勾選注音輸入法

點選 edittext 時還是出現英文鍵盤
常按英文鍵盤的空白鍵,此時跳出輸入法切換,選擇注音輸入法
若要回復成英文鍵盤,還是要回設定取消勾選注音輸入法

adnroid adb

查詢連接的裝置
C:\eclipse4_64\android-sdk-windows\platform-tools>adb devices
List of devices attached
emulator-5554   deviceadb shell
指定一台下命令
C:\eclipse4_64\android-sdk-windows\platform-tools>adb -s emulator-5554 shell
root@android:/ #

查詢網路裝置
C:\eclipse4_64\android-sdk-windows\platform-tools>adb shell netcfg
lo       UP                                   127.0.0.1/8   0x00000049 00:00:00:
00:00:00
eth0     UP                                   10.0.2.15/24  0x00001043 52:54:00:
12:34:56
sit0     DOWN                                   0.0.0.0/0   0x00000080 00:00:00:
00:00:00

查詢網路裝置設定
C:\eclipse4_64\android-sdk-windows\platform-tools>adb shell ifconfig eth0
eth0: ip 10.0.2.15 mask 255.255.255.0 flags [up broadcast running multicast]

測試網路
C:\eclipse4_64\android-sdk-windows\platform-tools>adb shell ping -c 3 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.310 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.616 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.338 ms
--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.310/0.421/0.616/0.139 ms
好像只能用在 localhost 127.0.0.1 10.0.2.2
發現採用 nc(netcat) 命令才可
C:\eclipse4_64\android-sdk-windows\platform-tools>adb shell nc -v www.google.com 80
Connection to www.google.com 80 port [tcp/www] succeeded!
C:\eclipse4_64\android-sdk-windows\platform-tools>adb shell nc -v 192.168.1.72 8080
Connection to 192.168.1.72 8080 port [tcp/webcache] succeeded!


2015年2月4日 星期三

開啟 https,使用 openssl CA

建立CA私鑰
D:\EclipseAndroid\Web>openssl genrsa -out cakey.pem 2048
查看公鑰
D:\EclipseAndroid\Web>openssl rsa -in cakey.pem -pubout -text
生成自簽證書
D:\EclipseAndroid\Web>set OPENSSL_CONF=c:\Program Files (x86)\GnuWin32\share\openssl.cnf
D:\EclipseAndroid\Web>openssl req -new -x509 -key cakey.pem -out cacert.pem -days 3650
Loading 'screen' into random state - done
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TW
State or Province Name (full name) [Some-State]:Taiwan
Locality Name (eg, city) []:Taichung
Organization Name (eg, company) [Internet Widgits Pty Ltd]:R&D
Organizational Unit Name (eg, section) []:Mark Chen
Common Name (eg, YOUR name) []:Mark Chen
Email Address []:ingrenn@yahoo.com.tw
D:\EclipseAndroid\Web>mkdir demoCA
D:\EclipseAndroid\Web>mkdir demoCA\private
D:\EclipseAndroid\Web>mkdir demoCA\newcerts
在 demoCA 目錄下建立文字檔 index.txt
在 demoCA 目錄下建立文字檔 serial,內容 "00"
D:\EclipseAndroid\Web>copy cakey.pem demoCA\private
D:\EclipseAndroid\Web>copy cacert.pem demoCA
建立給 tomcat 使用的私鑰
D:\EclipseAndroid\Web>openssl genrsa -out tomcat.key 1024
tomcat 客戶端生成證書簽屬請求
D:\EclipseAndroid\Web>openssl req -new -key tomcat.key -out tomcat.csr
Loading 'screen' into random state - done
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:TW
State or Province Name (full name) [Some-State]:Taiwan
Locality Name (eg, city) []:Taichung
Organization Name (eg, company) [Internet Widgits Pty Ltd]:R&D
Organizational Unit Name (eg, section) []:Mark Chen
Common Name (eg, YOUR name) []:localhost因為在本機使用,正式須如:www.domain.com
Email Address []:ingrenn@localhost

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:不要打密碼,不然會失敗
An optional company name []:
D:\EclipseAndroid\Web>openssl ca -in tomcat.csr -out tomcat.crt -days 3655
D:\EclipseAndroid\Web>openssl pkcs12 -export -in tomcat.crt -inkey tomcat.key -out tomcat.p12
Loading 'screen' into random state - done
Enter Export Password:在 tomcat 的 server.xml 設定中要用
Verifying - Enter Export Password:

在 tomcat 的 server.xml 設定中
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
  maxThreads="150" scheme="https" secure="true"
  clientAuth="false" sslProtocol="TLS"
  keystoreFile="D:\EclipseAndroid\Web\tomcat.p12"
  keystoreType="pkcs12" keystorePass="changit"
/>


開啟 IE /網際網路選項/內容/憑證/受信任的跟憑證授信單位/匯入 cacert.pem

如果要將 http 自動轉成 https,在 web.xml 的 <web-app> 中加入下列設定
<!-- Require HTTPS for everything except /img (favicon) and /css. -->
<security-constraint>
  <web-resource-collection>
    <web-resource-name>HTTPSOnly</web-resource-name>
    <url-pattern>/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
    <transport-guarantee>CONFIDENTIAL</transport-guarantee>
  </user-data-constraint>
</security-constraint>
<security-constraint>
  <web-resource-collection>
    <web-resource-name>HTTPSOrHTTP</web-resource-name>
    <url-pattern>*.ico</url-pattern>
    <url-pattern>/img/*</url-pattern>
    <url-pattern>/css/*</url-pattern>
  </web-resource-collection>
  <user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
  </user-data-constraint>
</security-constraint>


android 安裝證書
1. copy cakey.pem cakey.cer
2. 將 cakey.cer 證書放到 /storage/sdcard0/Download
3. 設定/安全性/從手機儲存空間安裝


開啟 https

在 命令提示字元下
>"c:\Program Files\Java\jre7\bin\keytool.exe" -genkeypair -alias tomcat -keyalg RSA -keystore keystore.pfx -storetype pkcs12
您的名字與姓氏為何?
  [localhost]:
您的組織單位名稱為何?
  [R&D]:
您的組織名稱為何?
  [Mark Chen]:
您所在的城市或地區名稱為何?
  [tw]:  Taichung
您所在的州及省份名稱為何?
  [taiwan]:
此單位的兩個字母國別代碼為何?
  [tw]:
CN=localhost, OU=R&D, O=Mark Chen, L=Taichung, ST=taiwan, C=tw 正確嗎?


在 tomcat 的 server.xml 中
    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
        maxThreads="150" scheme="https" secure="true"
        clientAuth="false" sslProtocol="TLS"
        keystoreFile="D:\EclipseAndroid\Web\keystore.pfx"
        keystoreType="pkcs12" keystorePass="mark1234"
        />

開啟 IE /網際網路選項/內容/憑證/個人/匯入 keystore.pfx


您的名字與姓氏為何?即是CN
其內容必須是網域名稱如 www.host.com.tw 或 localhost

使用 -storetype pkcs12 否則 IE 無法匯入憑證


2015年2月3日 星期二

Eclipse 加入 Web 開發

1. 開啟 Eclipse
2. Menu/Help/Install New Software
3. 選擇 Luna - http://download.eclipse.org/releases/luna
4. 勾選 Web, XML, Java EE and OSGi Enterprise Development
5. 重開 Eclipse
6. Menu/Windows/Preference
7. 選 Server/Runtime Environments, 選擇 Add
8. 選 Apache/Apache Tomcat v6.0
9. 按 Next 設定 Tomcat 安裝路徑
10. New Project 時,選擇 Web/Dynamic Web Project

2015年1月22日 星期四

語言學習程式 LearnLang

原先已經在 android 上寫好程式,而且也能使用
為了頁籤的順序不對
1.將 Google App Script 之 SheetAsJSON 改為 SheetAsJSON2
主要是將頁籤使用 JSON 的 Array 傳送
2.原先以為事情到此為止
哪知道儲存於資料庫時,照著頁籤名稱排序
只好修改資料庫
3.因為動了資料庫,所以全部重新下載,下載到一半居然停了,
google 回覆說不給機器程式使用發音
加入
conn.setRequestProperty("Range", "bytes=0-");
conn.setRequestProperty("Accept-Encoding", "identity");

利用 gmail 傳送 email

測試一直失敗,而後收到 googole 寄給我的一封信
重要的內容如下:

您可以改用 Google 開發的應用程式 (例如 Gmail) 存取帳戶 (建議做法),或是前往https://www.google.com/settings/security/lesssecureapps 變更相關設定,為您的帳戶停用最新安全性標準。

點入上述網頁,進入 安全性較低的應用程式,點選 啟用
重新寄信即可

gmail -> yahoo
mail.SetLogin("gingrenn@gmail.com");
mail.SetPassword("ingrenn1234");
  mail.SetSenderName("mark chen");
  mail.SetSenderMail("gingrenn@gmail.com");
//   mail.SetReplyTo("user@yahoo.com.tw");
  mail.SetSubject("The message");
  mail.AddRecipient("ingrenn@yahoo.com.tw");

yahoo -> gmail
mail.SetLogin("ingrenn");
mail.SetPassword("mark1234");
  mail.SetSenderName("ingrenn");
  mail.SetSenderMail("ingrenn@yahoo.com.tw");
//   mail.SetReplyTo("user@yahoo.com.tw");
  mail.SetSubject("The message");
  mail.AddRecipient("gingrenn@gmail.com");



2015年1月16日 星期五

VLC 控制

telnet 控制介面一直失敗,以前是成功的啊!
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --intf telnet --telnet-host=0.0.0.0 --telnet-port 4212 --telnet-password 1234

telnet localhost 4212
Password: 1234

>new ch1 broadcast enabled
>setup ch1 input rtsp://169.254.1.168:8557/PSIA/Streaming/channels/2?videoCodecType=H.264
>setup ch1 output #file{mux=ps,dst='R:\temp\aaa.ps'}
>control ch1 play
>control ch1 stop

>shutdown

Remote Control 好像能用,沒有完整的測試
vlc.exe -I rc --rc-host 0.0.0.0:8888

------------------------------------------------------------
似乎在 2.0.8 以後就不能使用了
回復以前版本
並且下命令時使用Multi-Byte Character Set
就可以在 WinXP 中使用

但是 Win8 64bit 一直找不到成功的方法

2015年1月14日 星期三