雙門底

雙門底
雙門底

『雙門』指羊城內壹棟街樓,『底』指門底條惠愛街. 係『天字碼頭』埋岸,經『太平沙』過『雙門底』到『惠愛街』.

明國未年『袁崇焕』𢬿尚方寶剑斬『毛文龍』,『毛文龍』部屬『尚可喜』『耿仲明』降清國.

『平南王尚可喜』『靖南王耿精忠』率兵攻粵,御旨先入羊城得越.两王陳兵天字碼頭爭入內城,雙方幕僚夾謁,係內城街樓門中間砌墙變雙門.两王兵馬各行壹門, 上報清國两王同時入內城,特準两王主越.

盲公餅

盲公餅
盲公餅

佛山何伯老蒞丧仔.雙眸白內障漸失明,唔知幾閉翳,好彩家嫂賢.

家嫂整餅,舂爛炒米和芝麻,中實肥肉,入甑熨熟.起初擺街賣.點知個個争住買,發埋達,係鶴園買街鋪,餅皆書『鮮明餅食』肆字.其它餅鋪書『盲公餅』出售.

家嫂帮家公草妾,隔年生男丁,何家有後.

龍飛鳳舞振家聲 招牌一出棟天庭

龍飛鳳舞振家聲 招牌一出棟天庭
龍飛鳳舞振家聲 招牌一出棟天庭
龍飛鳳舞振家聲 招牌一出棟天庭

 

龍飛鳳舞振家聲
招牌一出棟天庭

『龍飛鳳舞』指『喫夜粥練硬對拳頭』

『招牌』指『洪門』

『棟』指『棟穿』

『天庭』指『满清』

 

咸丰四年-儒略歷1854年,『陳開』白晝獄官, 夜晚洪門『洪順堂』大佬. 得知『洪秀全/全哥』係金田起義,之後仲係金陵建立『太平天國』.

『陳開』知道時機成熟,連仝 二花面『李文茂』, 『豐寧寺』主持『鄺能/和尚能』三人密謀 决定發動洪門起義. 『和尚能』議定作戰戰略『拜佛』『劏羊』『擒龍』.

『龍飛鳳舞振家聲 招牌一出棟天庭』.咸豐四年六月十一日即係1854年7月5日,主帥『陳開』領率『洪門子弟』,副帥『李文茂』領率『梨园子弟』,『和尚能』軍師.

首戰『拜佛』壹日 占領『佛山』, 『和尚能』以『塔坡寺』為本陳. 發動『劏羊』作戰.

 

B450-ITX

B450-ITX-RGBA
B450-ITX
B450-ITX
B450-ITX
B450-ITX
B450-ITX
B450-ITX
B450-ITX
B450-ITX
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA
B450-ITX-RGBA

買雜牌『B450-ITX』配『RYZEN5-1500X』砌臺ITX,摆係老竇屋企睇片.點知『BE200』WIFI吾認識. 早期版本,篮牙要更新BIOS.

壹年後……

平時冇點用,拎翻蒞諗住插支咪試下,壹插塊主板烧左,前后寄翻去3次,先肯换塊新RGBA版本,前後各壹條m.2磁碟,插4pin小喇叭著機BOOT.

以雜牌蒞講都算好,保养3年,壹年後烧左换新. 祗係記憶體吾兼容,間隙輕機. AID64記憶體測試報錯.舊版本返宜兼容記憶體.唯有降低頻率加大時序.

用『Ryzen DRAM Calculator』睇時序配置.

記憶體 默認值 修定後
MEM FREQUENCY(Mhz) 頻率 2400 2133
主時序配置    
Tcl 15 20
Trcdrd 15 20
Trcdwr 15 20
Trp 15 20
Tras 35 38
副時序配置    
Trc 0  
Trrds 4  
Trrdl 6  
Tfaw 23  
Twtrs 3  

休眠喚醒後顯示器黑屏,要撳『power』鍵重啟.BIOS 已UPADAE.『Win10/Linux』皆係.

B450-ITX RGBA版
m.2磁碟 2
BOOT-4pin 1
rgba燈 2
4pin風扇 2
3pin風扇 2
DEBUG 1

 

Intel Wi-Fi 7 BE200

Intel Wi-Fi 7 BE200
Intel Wi-Fi 7 BE200
Intel Wi-Fi 7 BE200
Intel Wi-Fi 7 BE200
Intel Wi-Fi 7 BE200
Intel Wi-Fi 7 BE200

之前係老竇屋企砌臺ITX電腦愛蒞睇片,『BE200』新出買蒞試試, 點知係係『b450-itx』可以認藍牙,唔認WIFI.反而係『x99-itx』藍牙WIFI都認.

唯有『AX210』配『b450-itx』, 『BE200』配『x99-itx』.

下載最新Intel WiFi驅動.

https://downloadmirror.intel.com/812774/WiFi-23.20.0-Driver64-Win10-Win11.exe
https://downloadmirror.intel.com/812775/WiFi-23.20.0-Driver64-Win10-Win11.zip
https://downloadmirror.intel.com/794069/BT-23.10.0-64UWD-Win10-Win11.exe
https://downloadmirror.intel.com/794708/BT-23.10.0-64UWD-Win10-Win11.zip

 

NET Frameword 3.5(包括.NET2.0和3.0)

NET Frameword 3.5(包括.NET2.0和3.0)
NET Frameword 3.5(包括.NET2.0和3.0)
NET Frameword 3.5(包括.NET2.0和3.0)
NET Frameword 3.5(包括.NET2.0和3.0)
NET Frameword 3.5(包括.NET2.0和3.0)
NET Frameword 3.5(包括.NET2.0和3.0)
  1. 撳『Win+E』 檔案總管
  2. 撳『控制台』
  3. 撳『程式和功能』
  4. 撳『開啟或關閉Windows功能』,著『Windows功能』.
  5. 勾『NET Frameword 3.5(包括.NET2.0和0) 』,撳『确定』.
  6. 等下載後套用.

 

UTF8/BIG5/Shift-JIS/EUC-KR/GB2312判定

UTF8/BIG5/Shift-JIS/EUC-KR/GB2312判定
UTF8/BIG5/Shift-JIS/EUC-KR/GB2312判定

係電腦發展初時定義左套『ASCII碼』,得128字符,英文加數字用單字節BYTE. 後蒞各國皆自定『字符編碼』,『Shift-JIS/EUC-KR/BIG5/GB2312』皆占两字節WORD,结果係編碼重叠.所以先有亂碼.

Low 8bit Height 8bit
ASCII-128 0 ~ 0x7F N/A
BIG5漢字 0xA1 ~ 0xF9 0x40 ~ 0x7E

0xA1 ~ 0xFE

SHIFT-JIS日字 0x81~0x9f

0xe0~0xef

0x40~0x7e

0x80~0xfc

EUC-KR韓字 0xA1~0xFE 0xA1~0xFE
GB2312中字 0xA1 ~ 0xF7 0xA1 ~ 0xFE
GBK中字 0x81 ~ 0xFE 0x40 ~ 0xFE

『UTF-8』係Unicode『萬國碼』變體,首byte前缀標記字符長度.前缀0長度1, 前缀110長度2, 前缀1110長度3.以此类推.尾随byte前缀皆標記01.

『UTF-8』bin 長度
bin:0xxxxxxx 1
bin:110xxxxx 10xxxxxx 2
bin:1110xxxx 10xxxxxx 10xxxxxx 3
bin:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 4
bin:111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 5
bin:1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 6

UTF-8判定

if ((utf8[0] & 0x80) == 0x00)

return 1;

值小於0x80的ASCII字元
if ((utf8[0] & 0xE0) == 0xC0  &&

(utf8[1] & 0xC0) == 0x80)

return 2;

2字節UTF-8字符
if ((utf8[0] & 0xF0) == 0xE0 &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80)

return 3;

3字節UTF-8字符
if ((utf8[0] & 0xF8) == 0xF0 &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80 &&

(utf8[3] & 0xC0) == 0x80)

return 4;

4字節UTF-8字符
if ((utf8[0] & 0xFC) == 0xF8 &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80 &&

(utf8[3] & 0xC0) == 0x80 &&

(utf8[4] & 0xC0) == 0x80)

return 5;

5字節UTF-8字符
if ((utf8[0] & 0xFE) == 0xFC &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80 &&

(utf8[3] & 0xC0) == 0x80 &&

(utf8[4] & 0xC0) == 0x80 &&

(utf8[5] & 0xC0) == 0x80)

return 6;

6字节UTF-8字符

值小於0x80係ASCII字符集

if ((string[0] & 0x80) == 0x00)

return 1;

BIG5漢字符集編碼范圍

if ((string[0] >= 0xA1 && string[0] <= 0xF9) &&

(string[1] >= 0x40 && string[1] <= 0x7E ||

string[1] >= 0xA1 && string[1] <= 0xFE) )

return 2;

SHIFT-JIS日字符集編碼范圍

if ((string[0] >= 0x81 && string[0] <= 0xF9 ||

string[0] >= 0xe0 && string[0] <= 0xef) &&

(string[1] >= 0x40 && string[1] <= 0x7E ||

string[1] >= 0xA1 && string[1] <= 0xFE) )

return 2;

EUC-KR韓字符集編碼范圍

if ((string[0] >= 0xA1 && string[0] <= 0xFE) &&

(string[1] >= 0xA1 && string[1] <= 0xFE))

return 2;

GB2312中字符集編碼范圍

if ((string[0] >= 0xA1 && string[0] <= 0xF7) &&

(string[1] >= 0XA1 && string[1] <= 0XFE) )

return 2;

GBK中字符集編碼范圍

if ((string[0] >= 0x81 && string[0] <= 0xFE) &&

(string[1] >= 0XA0 && string[1] <= 0XFE) )

return 2;

 

UNICODE-UTF8轉換

UNICODE-UTF8轉換
UNICODE-UTF8轉換

係電腦發展初時.定義左套『ASCII碼』,得128字符,英文加數字用單字節BYTE. 後蒞各國皆自定『字符編碼』,『BIG5/GB2312』皆占两字節WORD,结果係編碼重叠.所以先有亂碼.

UNICODE『萬國碼』,各國各自有獨立編碼段,吾重叠,同『ASCII碼』兼容.

『UNICODE』係設計之初每字符占『2 BYTE』即『USC2』字符集. 但係『2 BYTE』够支持65535字符.所以後蒞有『USC4』占『4 BYTE』.

係同壹字符串USC2同USC4會混合出現.

但係『ASCII碼』只需單字節『1 BYTE』. 所以發明左『UTF-8』以節約地方.

『UTF-8』同『UNICODE』按照下表互為轉换.

Unicode『USC2』字符集HEX 『UTF-8』bin
0x0000~0x007F 0xxxxxxx
0x0080~0x07FF 110xxxxx 10xxxxxx
0x0800~0xFFFF 1110xxxx 10xxxxxx 10xxxxxx

為左係同壹字符串『USC2』同『USC4』混合出現.係『USC4』字符『低16bit』同『高16bit』分別加前缀標記.

『低16bit』加『0xD800』,『高16bit』加『0xDC00』,再加壹區域0x10000.

前缀標記『0xD800』『0xDC00』各占6bit,各净低10bit加埋有『20bit』.够支持 『1048576』字符

USC4-低16bit前缀標記 0xD800 BIN:110110 00000 00000
USC4-高16bit前缀標記 0xDC00 BIN:110111 00000 00000

 

USC4 前缀標記 USC4=前缀標記+字符
低16bit 0xD800 BIN:110110 00000 00000 + BIN:xxxxxxxxxx
高16bit 0xDC00 BIN:110111 00000 00000 + BIN:xxxxxxxxxx

utf8 轉 usc4

首字節 value = utf8[sour] & (0xFF >> (bytes + 1));

++sour;

尾随字節 for (int i = 1; i < bytes; ++i) {

value = value << 6;

value = value | (utf8[sour] & 0x3f);// 提低6bit

++sour;

}

减壹區域 value = value – 0x10000
低16bit unicode[dest] = 0xD800 | ((value >> 10) & 0x3ff );
高16bit unicode[dest+1] = 0xDC00 | ((value) & 0x3ff);

dest = dest + 2;

utf8 轉 usc2

首字節 value = utf8[sour] & (0xFF >> (bytes + 1));

++sour;

尾随字節 for (int i = 1; i < bytes; ++i) {

value = value << 6;

value = value | (utf8[sour] & 0x3f);

++sour;

}

反轉字節 v = (value >> 24) & 0xFF;

unicode[dest] = v;

v = (value >> 16) & 0xFF;

if (v != 0) {

unicode[dest] = (unicode[dest] << 8) + v;

++dest;

}

反轉字節 v = (value >> 8) & 0xFF;

unicode[dest] = v;

v = value & 0xFF;

if (v != 0) {

unicode[dest] = (unicode[dest] << 8) + v;

++dest;

}

Usc4轉utf8

提取字符 value = (unicode[sour] – 0xD800) << 10 | (unicode[sour + 1] – 0xDC00);
加壹區域 value = value + 0x10000;

Usc2轉utf8

提取字符 value = unicode[sour];
首字節 utf8[dest] = (0xFF << (8 – bytes)) | (value >> ((bytes – 1) * 6));

++dest;

尾随字節 for (int i = 1; i < bytes; ++i) {

utf8[dest] = 0x80 | (value >> ((bytes – i – 1) * 6) & 0x3F);

++dest;

}

++sour;

『UTF-8』首byte,前缀標記字符長度. 前缀0長度1, 前缀110長度2, 前缀1110長度3. 以此类推.尾随byte前缀皆標記01.

『UTF-8』bin 長度
bin:0xxxxxxx 1
bin:110xxxxx 10xxxxxx 2
bin:1110xxxx 10xxxxxx 10xxxxxx 3
bin:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 4
bin:111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 5
bin:1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 6

按首BIT符號,計算UTF8字符長度,返回0非UFT8字符.

『UTF-8』字符
if ((utf8[0] & 0x80) == 0x00)

return 1;

0xxxxxxx
if ((utf8[0] & 0xE0) == 0xC0  &&

(utf8[1] & 0xC0) == 0x80)

return 2;

110xxxxx 10xxxxxx
if ((utf8[0] & 0xF0) == 0xE0 &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80)

return 3;

1110xxxx

10xxxxxx

10xxxxxx

if ((utf8[0] & 0xF8) == 0xF0 &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80 &&

(utf8[3] & 0xC0) == 0x80)

return 4;

11110xxx

10xxxxxx

10xxxxxx

10xxxxxx

if ((utf8[0] & 0xFC) == 0xF8 &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80 &&

(utf8[3] & 0xC0) == 0x80 &&

(utf8[4] & 0xC0) == 0x80)

return 5;

111110xx

10xxxxxx

10xxxxxx

10xxxxxx

10xxxxxx

if ((utf8[0] & 0xFE) == 0xFC &&

(utf8[1] & 0xC0) == 0x80 &&

(utf8[2] & 0xC0) == 0x80 &&

(utf8[3] & 0xC0) == 0x80 &&

(utf8[4] & 0xC0) == 0x80 &&

(utf8[5] & 0xC0) == 0x80)

return 6;

1111110x

10xxxxxx

10xxxxxx

10xxxxxx

10xxxxxx

10xxxxxx

unicode轉utf8 , ASCII碼相等.

 int UnicodeToUTF8(char * utf8, const wchar_t * unicode)

{

int unicodeLength = 0;

int bytes;

int dest, sour;

DWORD value;

unicodeLength = Unicode_Length(unicode) ;

sour = dest = 0;

while (sour < unicodeLength)

{

bytes = 1;

if (unicode[sour] >= 0xD800 && unicode[sour + 1] >= 0xDC00)

bytes = 4;

else

if (unicode[sour] >= 0x00 && unicode[sour] <= 0x7F)

bytes = 1;

else

if (unicode[sour] >= 0x80 && unicode[sour] <= 0x7FF)

bytes = 2;

else

if (unicode[sour] >= 0x800 && unicode[sour] <= 0xFFFF)

bytes = 3;

else

if (((unicode[sour + 1] << 16) | unicode[sour]) >= 0x10000 &&

((unicode[sour + 1] << 16) | unicode[sour]) <= 0x1FFFFF)

bytes = 4;

else

if (((unicode[sour + 1] << 16) | unicode[sour]) >= 0x200000 &&

((unicode[sour + 1] << 16) | unicode[sour]) <= 0x3FFFFFF)

bytes = 5;

else

if (((unicode[sour + 1] << 16) | unicode[sour]) >= 0x4000000 &&

((unicode[sour + 1] << 16) | unicode[sour]) <= 0x7FFFFFFF)

bytes = 6;

else

if (((unicode[sour + 1] << 16) | unicode[sour]) >= 0x80000000)

bytes = 7;

 

if (bytes == 1)

{

utf8[dest] = unicode[sour];

++dest;

++sour;

}

else

if (unicode[sour] >= 0xD800 && unicode[sour + 1] >= 0xDC00)

{

value = (unicode[sour] – 0xD800) << 10   |  (unicode[sour + 1] – 0xDC00);

value = value + 0x10000;

utf8[dest] = (0xFF << (8 – bytes)) | (value >> ((bytes – 1) * 6));

++dest;

for (int i = 1; i < bytes; ++i) {

utf8[dest] = 0x80 | (value >> ((bytes – i – 1) * 6) & 0x3F);

++dest;

}

sour = sour + 2;

}

else

if (bytes == 2 || bytes == 3)

{

value = unicode[sour];

utf8[dest] = (0xFF << (8 – bytes)) | (value >> ((bytes – 1) * 6));

++dest;

for (int i = 1; i < bytes; ++i) {

utf8[dest] = 0x80 | (value >> ((bytes – i – 1) * 6) & 0x3F);

++dest;

}

++sour;

}

else

if (bytes >= 4)

{

value = (unicode[sour + 1] << 16) | unicode[sour];

utf8[dest] = (0xFF << (8 – bytes)) | (value >> ((bytes – 1) * 6));

++dest;

for (int i = 1; i < bytes; ++i) {

utf8[dest] = 0x80 | (value >> ((bytes – i – 1) * 6) & 0x3F);

++dest;

}

sour = sour + 2;

}

}

utf8[dest] = NULL;

return dest;

}

utf8 轉 unicode

 int UTF8ToUnicode(wchar_t * unicode, const char* utf8)

{

int utf8Length;

int sour, dest;

int bytes;

dest = sour = 0;

DWORD value;

BYTE v;

utf8Length = strlen(utf8);

while (sour < utf8Length)

{

if ((utf8[sour] & 0x80) == 0x00)

bytes = 1;

else

if ((utf8[sour] & 0xE0) == 0xC0)

bytes = 2;

else

if ((utf8[sour] & 0xF0) == 0xE0)

bytes = 3;

else

if ((utf8[sour] & 0xF8) == 0xF0)

bytes = 4;

else

if ((utf8[sour] & 0xFC) == 0xF8)

bytes = 5;

else

if ((utf8[sour] & 0xFE) == 0xFC)

bytes = 6;

else

bytes = 7;

if (bytes == 1)

{

unicode[dest] = utf8[sour];

++dest;

++sour;

}

else

if (bytes == 2 || bytes == 3)

{

value = utf8[sour] & (0xFF >> (bytes + 1));

++sour;

for (int i = 1; i < bytes; ++i) {

value = value << 6;

value = value | (utf8[sour] & 0x3f);

++sour;

}

 

v = (value >> 24) & 0xFF;

unicode[dest] = v;

v = (value >> 16) & 0xFF;

if (v != 0) {

unicode[dest] = (unicode[dest] << 8) + v;

++dest;

}

 

v = (value >> 8) & 0xFF;

unicode[dest] = v;

v = value & 0xFF;

if (v != 0) {

unicode[dest] = (unicode[dest] << 8) + v;

++dest;

}

}

else

if (bytes >= 4 )

{

value = utf8[sour] & (0xFF >> (bytes + 1));

++sour;

for (int i = 1; i < bytes; ++i) {

value = value << 6;

value = value | (utf8[sour] & 0x3f);

++sour;

}

value = value – 0x10000;

unicode[dest] = 0xD800 | ((value >> 10) & 0x3ff );

unicode[dest+1] = 0xDC00 | ((value) & 0x3ff);

dest = dest + 2;

}

}

 

unicode[dest] = NULL;

return dest;

}

 

Visual Studio 2022-設定UTF8編碼

Visual Studio 2022-設定UTF8編碼
Visual Studio 2022-設定UTF8編碼

『Android Studio』默認utf8編碼. 而『Visual Studio』按『地區設定』,轉本地字符編碼.

要强轉utf8可以係字加『u8』前缀

char utf8[MAX_CHAR] = u8″abcdef屌㞗𡳞杘屄”;

加『u8』前缀後,代碼移稙『Android Studio』繁鎖.可以加編譯詣令.

#pragma execution_character_set(“utf-8”)

适宜字符寫死係代碼. 若将字符保存係外部文檔,存為utf8即軟代碼.唔使諗編碼.

要强轉unicode係字加『L』前缀.USC2同USC4混埋.

wchar_t  unicode[MAX_CHAR] = L”屌㞗𡳞杘屄”;

 

Windows Hello臉部

Windows Hello臉部
Windows Hello臉部
Windows Hello臉部
Windows Hello臉部
Windows Hello臉部
Windows Hello臉部
Windows Hello臉部
Windows Hello臉部
Windows Hello臉部
Windows Hello臉部

『Kensington指紋』冇拉拉神左,睇到『Windows Hello臉部』相機模块,集成RGB&IR.Microsoft認証Win10自帶驅動. 分别係『Integrated Camera』『Integrated IR Camera』.打印相機殼,配两粒磁鐵,吸係屏上則.

發热量大,短時間臉容識別就得.

  1. 撳『設定』
  2. 撳『帳戶』
  3. 撳『登入選項』->『Windows Hello臉部』

 

經緯度座標『度分秒』轉换

經緯度座標度分秒轉换
經緯度座標度分秒轉换

經緯度座標有叄種格式,『度分秒』『度分』『度』.

『度分秒』等於『時分秒』, 『1度=60分=3600秒』『1分=60秒』

經緯度座標  
度分秒DMS DDD°MM’SS”
度分DM DDD°MM.MMM’
度D DDD.DDDDD°

 

度分秒 轉换
分轉度 除60
秒轉度 除3600
秒轉分 除60
度轉分 度小數乘60
分轉秒 分小數乘60

 

『度分秒』轉『度』

例『35°41′37.5″』即係『35度41分37.5秒』
41分轉度= 41/60
37.5秒轉度=37.5/3600
35 + 41/60 + 37.5/3600=35.69375度
void DMS_TO_DD(float D,float M,float S,double * DD)

{

*DD = D + M/60.0f + S/3600.0f;

}

 

『度分』轉『度』

例『35°41.625』即係『35度41.625分』
41.625分轉度= 41/60
35 + 41.625/60 =35.69375度
void DM_TO_DD(float D, float M, double* DD)

{

*DD = D + M / 60.0f; // 除60

}

 

『度』轉『度分』

例『35.6937632°』即係『35度41.625792分』
『0.6937632°』度轉分  0.6937632*60=41.625792′
35 + 0.6937632*60=『35°41.625792’』=『35度41.625792分』
void DD_TO_DM(double DD,int * D,float * M)

{

*D = (int)DD; // 度取整

*M = (DD – *D) * 60; // 度小數乘60

}

 

『度』轉『度分秒』

例『35.6937632°』度即係『35度, 41分, 37.54秒』
取度小數『0.6937632°』度轉分  0.6937632°*60=41.625792′
取分小數『0.625792’』分轉秒   0.625792’*60=37.54752″
35°+ 0.6937632°*60 + 0.625792’*60=『35°41′37.5″』=『35度, 41分, 37.54秒』
void DD_TO_DMS(double DD, float* D, float* M, float* S)

{

float MM;

*D = (int)DD; // 度取整

MM = (DD – *D) * 60; // 度小數乘60

*M = (int)MM;// 分

*S = (*M – MM) * 60;// 分小數乘60

}

 

1日 360度
1度 60分=3600秒
1分 60秒

 

Windows10象筋拖放

Windows10象筋拖放
Windows10象筋拖放

係Windows拖拽或者縮放窗口, 會造成窗體閃爍, 啟用象筋拖放, 即係非實時拖放,可避免窗體閃爍.

進入像筋拖放
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, true, &drag_full_windows, NULL);

 

退出像筋拖放
SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, false, &drag_full_windows, NULL);

通過監聽『WM_ENTERSIZEMOVE』進入拖拽, 『WM_EXITSIZEMOVE』退出像筋拖拽, 實施像筋象筋拖放

LRESULT CALLBACK WindowProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam){
    if (msg == WM_ENTERSIZEMOVE)

SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, true, &drag_full_windows, NULL);// 進入像筋拖放

else

    if (msg == WM_EXITSIZEMOVE)

SystemParametersInfo(SPI_SETDRAGFULLWINDOWS, false, &drag_full_windows, NULL);// 退出像筋拖放

return(DefWindowProc(hWnd, msg, wParam, lParam));

}

 

WD BLACK AN1500 打孖插PC300-1TB

WD BLACK AN1500

WD BLACK AN1500 PC300 NVMe SK Hynix 1TB*2 CrystalDiskMark
WD BLACK AN1500 PC300 NVMe SK Hynix 1TB*2 CrystalDiskMark

WD BLACK AN1500 PC300 NVMe SK Hynix 1TB*2 CrystalDiskInfo

PC300 NVMe SK Hynix 1TB
PC300 NVMe SK Hynix 1TB
PC300 NVMe SK Hynix 1TB
PC300 NVMe SK Hynix 1TB
PC300 NVMe SK Hynix 1TB
PC300 NVMe SK Hynix 1TB
PC300 NVMe SK Hynix 1TB
PC300 NVMe SK Hynix 1TB
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500
WD BLACK AN1500

WD BLACK AN1500原配两條SN730仲有ARGB燈,有人拆出蒞䶒賣殼.睇中佢自動组建Raid0,讀寫至高達『6500MB/S』,諗住買翻『SN730-1TB』, 睇到『PC300-1TB』特價,仲係『MLC SSD』. 1TB仲係1024GB.

打孖插入『PC300-1TB』自建Raid0. 温度高達65℃. 讀『3800 MB/S』,寫『2194MB/S』. 比『SN730』慢.

WD BLACK AN1500-Raid0 PC300 NVMe SK Hynix 1TB*2
CrystalDiskMark讀 2800 MB/S
CrystalDiskMark寫 2194MB/S
CrystalDiskInfo 69℃.
MLC SSD SK Hynix H2702T8C0B3A

 

WD AN1500
上行 6500MB/S
下行 6500MB/S
總線 PCIe Gen3*4 SSD

 

 

Visual Studio編譯『zlib-1.2.13.tar.gz』

CMake ZLIB
CMake ZLIB
CMake ZLIB
CMake ZLIB
Visual Studio編譯『zlib-1.2.13.tar.gz』
Visual Studio編譯『zlib-1.2.13.tar.gz』
Visual Studio編譯『zlib-1.2.13.tar.gz』
Visual Studio編譯『zlib-1.2.13.tar.gz』

ZLIB』係開源『壓縮』同『解壓』程式庫, 支持『DEFLATE』冇損壓縮算法,混合『LZ77算法』同『霍夫曼編碼』.

『Visual studio』冇內置『ZLIB』,下載『zlib-1.2.13.tar.gz』再編譯.

  1. 下载『ZLIB
http://www.zlib.net/
http://www.zlib.net/zlib-1.2.13.tar.gz
  1. 安装『CMake』帮『zlib-1.2.13.tar.gz』生成Visual studio工程.
  2. 解壓『zlib-1.2.13.tar.gz』到『C:\Program Files (x86)\zlib-1.2.13』
  3. 以管理員身份執行『cmake-gui.exe』.
  4. 『Where is the source code:』填『C:\Program Files (x86)\zlib-1.2.13』
  5. 『Where to build the binaries:』填『C:/Program Files (x86)/zlib-1.2.13/build』, 資料夾『build』要架自新建.
  6. 勾『Grouped』
  7. 勾『Grouped』
  8. 撳『Configure』
  9. 『Specify the generator for this project』揀『Visual Studio 17 2022』
  10. 『Optional platform for generator(if empty, generator uses:x64)』揀『x64』.
  11. 撳『Finish』
  12. 撳『Generate』
  13. 撳『Open Project』開啟Visual studio工程
  14. 『INSTALL』撳右鍵, 『設定為啟動專案』.
  15. 撳『F7』鍵, 分別『Debug』/『Release』建置工程,編譯後生成
路徑 版本
C:\Program Files (x86)\zlib-1.2.13\build\Debug Debug
C:\Program Files (x86)\zlib-1.2.13\build\Release Release
  1. 生成
Debug調試版 Release發行版  
zlibstaticd.lib zlibstatic.lib 静態庫, 唔使dll
zlibd.lib zlib.lib 動態庫, 要dll
zlibd.dll zlib.dll 動態連结
  1. 『Visual studio』識复制『ZLIB』頭文檔去『C:\Program Files\zlib』
C:\Program Files\zlib\include\zconf.h Zlib-API
C:\Program Files\zlib\include\zlib.h  
  1. 係工程包含『ZLIB』頭文檔
#include <zlib.h> Zlib-api
#include <zconf.h>  
  1. 係工程包含静態庫
#if _DEBUG  
#pragma comment(lib, “..\\ZLIB\\zlibstaticd.lib”)

#else

 
#pragma comment(lib, “..\\ZLIB\\zlibstatic.lib”)

#endif

 

 

CMake安裝

CMake安裝
CMake安裝
CMake版本
CMake版本

『CMake』愛蒞生成makefile或project文件, 畀Visual studio編譯代碼.

登入『CMake官網』下載『cmake-3.27.7-windows-x86_64.msi』安装包.

  1. 運行『cmake-3.27.7-windows-x86_64.msi
  2. 勾『I accept the terms in License Agreement』撳『Next』
  3. 勾『Add CMake to system PATH for all users』撳『Next』
  4. 『Install Cmake to:』填『C:\Program Files\CMake\』或填英文路徑.撳『Next』
  5. 撳『Install』安装

 

驗証CMake安装

  1. 撳『win+r』填 进入命令行模式.
  2. 填『cmake -version』撳enter鍵
  3. 顯示cmake版本『cmake version 3.27.7』.
https://cmake.org/
https://cmake.org/download/
cmake-3.28.0-rc3-windows-x86_64.msi
cmake-3.27.7-windows-x86_64.msi

 

Visual Studio-error LNK2001 unresolved external symbol __imp__glBegin

Visual Studio-error LNK2001 unresolved external symbol __imp__glBegin
Visual Studio-error LNK2001 unresolved external symbol __imp__glBegin

將代碼移稙去WIN10, 係Visual Studio报

error LNK2001: 無法解析的外部符號 __imp_glBegin

調用OpenGL函式,冇鏈结OpenGL庫引起, 係『.H』文檔加入下列代碼即可.

#pragma comment(lib, “OpenGL32.lib”)
#pragma comment(lib, “GLu32.lib”)

USB2.0 壹拆肆 FE2.1

USB2.0 壹拆肆 FE2.1
USB2.0 壹拆肆 FE2.1
USB2.0 壹拆肆 FE2.1
USB2.0 壹拆肆 FE2.1
USB2.0 壹拆肆 FE2.1
USB2.0 壹拆肆 FE2.1
USB2.0 壹拆肆 FE2.1
USB2.0 壹拆肆 FE2.1

上次『USB3.0壹拆貳』插『SD讀卡機』冇反應,改買臺彎汤銘TERMINUS-FE2.1芯片,『USB2.0 壹拆肆』.聽講兼容冚辦闌USB2.0機體.

冇定位窿, 3D打印磁吸底座,吸係機槓壁.配線够長.

部『SD讀卡機』係USB3.0-19PIN,要轉9PIN.好彩識認.

華南X99-F8D Plus

華南X99-F8D Plus
華南X99-F8D Plus
華南X99-F8D Plus
華南X99-F8D Plus

華南X99-F8D Plus

X570冇定時輕機,睇翻佢本天書,要用『1R8/2R8-DDR4』記憶體,買两條32GB成千幾紋,索性買雜牌X99玩,開機慢到以為吾著. 壹分鐘先睇到bios logo

  1. 『PWM-4PIN』得两個岩岩够两粒其它冚辦闌係『3PIN』.
  2. 两『USB2.0-9PIN』, 壹『USB3.0-19PIN』.唔够使緊.
  3. 仲有TeeDriverW8x64.sys蓝屏
  4. 唔係EATX窿位,要整過主板腳撑
  5. 两條2支援22110規格,插槽底座起碼高左4mm.可能詅住畀你『两面散熱』.

 

 

配置如下

  1. EATX機槓W100
  2. Intel XEON E5-2637V4 3.50GHZ*2
  3. SAMSUNG 64GB 4DR4 PC4-2400T
  4. 台達火牛GM1300
  5. Seagate XM1440 960Gb
  6. PC-FAN 14025
  7. PC-FAN 23030
  8. PC-FAN 4pin PWM集線磁吸底座
  9. USB 3.1一分二磁吸底座

 

 

Intel XEON E5-2637V4 3.50GHZ

Intel XEON E5-2637V4 3.50GHZ
Intel XEON E5-2637V4 3.50GHZ
Intel XEON E5-2637V4 3.50GHZ
Intel XEON E5-2637V4 3.50GHZ
Intel XEON E5-2637V4 3.50GHZ
Intel XEON E5-2637V4 3.50GHZ
Intel XEON E5-2637V4 3.50GHZ
Intel XEON E5-2637V4 3.50GHZ

買左雜牌『X99-F8D PLUS』, 睇岩『E5-2637 V4』支持雙U,頻率至高.『基頻3.5GHZ』畀『E5-1630V4』低200HZ.

用CPU-Z測單線程相若. 多線程跑分接近壹倍. 可能同雙CPU有關.

INTEL XEON E5-2637V4 E5-1630V4 E5-2630LV3
CPU-Z單線程 462.4 470.7 233.2
CPU-Z多線程 4368.2 2350.2 2136.7
主頻 3.5GHZ 3.7GHZ 1.8GHZ
核心 4核 4核 8核
線程 8線程 8線程 16線程
TDW 140W 140W 55W

 

EATX機槓-W100

EATX機槓-W100
EATX機槓-W100

買左雜牌『x99-EATX』,舊式ATX機槓要拆左光驅位支架.冇臺鉆拆拉釘驚拆爛.索性新買EATX機槓W100,分左右腔.10條PCIE槽位,有主板要11條PCIE槽位.

左腔裝主板同風扇,為左装『23030風扇』要移有機玻璃去門板外側.

右腔得86mm寬,装3.5寸機體同埋atx火牛都掹水,早知買W200吾使搞甘耐.

  1. 5寸機體支架
  2. 火牛支架
  3. PC-FAN 14025
  4. PC-FAN 23030 BNFENIX電腦風扇
  5. PC-FAN 4pin PWM集線磁吸底座
  6. USB 3.1一分二磁吸底座
  7. 門磁吸
  8. 主板腳撑

 

3D打印-火牛延伸支架

3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架
3D打印-火牛延伸支架

『W100機槓』將ATX火牛移去右腔,好似細機箱甘,愛蒞装風扇,右腔得86MM寬,要打棟放ATX火牛,剷埋右門『加强撑』先岩岩够位.早知買『W200機槓』唔使甘煩. 收屘買60*30鋁磁鐵攝住火牛.

3D打印-3.5寸機體支架

3.5寸面板支架
3.5寸面板支架
3.5寸面板支架
3.5寸面板支架
3.5寸面板支架
3.5寸面板支架
手提DVD-ROM支架
手提DVD-ROM支架
手提DVD-ROM支架
手提DVD-ROM支架
手提DVD-ROM支架
手提DVD-ROM支架
SD讀卡機支架
SD讀卡機支架

SD讀卡機支架
SD讀卡機支架

新買eatx機槓W100分左右腔,左腔裝主板,右腔裝3.5寸機體.

  1. 5寸面板支架
  2. 5寸磁碟支架
  3. 手提DVD-ROM支架
  4. SD讀卡機支架
3.25寸支架 尺碼
DISK-width 101.60mm
DVD-width 103mm
length 147mm
Dest-width 113.5

 

PC-FAN 4pin-PWM拆分

PC-FAN 4pin-PWM壹分辻
PC-FAN 4pin-PWM壹分辻
PC-FAN 4pin-PWM壹分辻
PC-FAN 4pin-PWM壹分辻
PC-FAN 4pin-PWM壹分辻
PC-FAN 4pin-PWM壹分辻
PC-FAN 4pin-PWM
PC-FAN 4pin-PWM

雜牌eatx主板得两個4pin-pwm供電,岩岩够畀两粒CPU.『EATX機槓』裝得落8把『140風扇』加9把『200風扇』.要靠『PC-FAN 4pin集線』,占主板壹個4pin供電接温控調速線,拆分成辻『4pin-pwm』.得插赤色『4pin』扇速傳畀主板.

装肆粒磁石係底座,吸附機身壁.

USB3.0 GEN1拆分

USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分
USB3.0 GEN1拆分

新買雜牌x99-eatx, 得壹個『USB3.0-19PIN』两個『USB2.0-9PIN』.

機箱占两個『USB3.0-19PIN』,WIFI藍牙壹個『USB2.0-9PIN』,SD讀卡機『USB3.0-19PIN』. 得求助『USB3.0-19PIN』拆分雙『USB3.0-19PIN』. 速率保持5Gbps.意外發現支持『USB2.0-9PIN』拆分雙『USB3.0-19PIN』, 速率得翻480Mbps.

用两粒磁石摄係機槓壁.比用雙面膠合适.

Windows10-TeeDriverW8x64.sys蓝屏

TeeDriverW8x64.sys
TeeDriverW8x64.sys

雜牌x99-eatx係登入Win10間謁會Te

Windows10-TeeDriverW8x64.sys蓝屏
Windows10-TeeDriverW8x64.sys蓝屏

eDriverW8x64.sys蓝屏. 心諗雜牌都係信唔過.

『TeeDriverW8x64.sys』係『Intel(R) Management Engine Interface』英特爾®管理引擎介面驅動程式.

『剷TeeDriverW8x64.sys』

  1. 撳『WIN+PAUSE BREAK』鍵
  2. 撳『裝置管理員』
  3. 右鍵撳『Intel(R) Management Engine Interface』
  4. 撳『解除安装装置』
  5. 勾『刪除此裝置驅動程式軟體』
  6. 撳『解除安装』

PC-FAN 23030 BNFENIX 機槓風扇

PC-FAN 23030 BNFENIX 機槓風扇
PC-FAN 23030 BNFENIX 機槓風扇
PC-FAN 23030 BNFENIX 機槓風扇
PC-FAN 23030 BNFENIX 機槓風扇
PC-FAN 23030 BNFENIX 機槓風扇
PC-FAN 23030 BNFENIX 機槓風扇
PC-FAN 23030 BNFENIX 機槓風扇
PC-FAN 23030 BNFENIX 機槓風扇

新EATX機槓裝9把『200風扇』. BNFENIX-3PIN白色『230風扇』,為左装係『200扇位』削去两側. 9扇葉設計,扇速慢得800轉.9把『230風扇』要風扇集線器.

230扇葉大易斷扇軸,冇适合鐵網保謢扇葉.

PC-FAN 23030 數值
尺碼 230*30mm
電壓 12V
電流 0.18A
Materials PBT
Speed(R.P.M.) 700~900轉/分
噪聲 20(dB-A)
25MM
窿徑 4MM

 

PC-FAN 14025

PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025
PC-FAN 14025

新EATX機槓,可装8把『140風扇』加9把『200風扇』.支援PWM-4PIN白色『140風扇』,設計上為左装係『120扇位』削去肆角.為左裝『140䕶網』補番肆角.電壓12V,冇標電流.扇速慢静音,7扇葉設計,大扇葉風量大. 其中之壹時轉時吾轉.8把『140風扇』需PWM集線.

PC-FAN 數據
電壓 12V
12025風扇 窿距105*105MM
14025風扇 窿距124.5*124.5MM
25MM
窿徑 4MM

 

3D打印-劑出頭

3D打印-劑出頭
3D打印-劑出頭
3D打印-劑出頭
3D打印-劑出頭

吾知係長時打印,劑出頭塞死, 加熱块係鋁,噴嘴係銅. 通過喉管將線材推入噴嘴.壹但塞死, 可能要换『加熱块』『噴嘴』『喉管』. 原厰件超貴,係網络買副厰價格低廉.

『加熱管』同『熱敏電阻』要先拆, 换『劑出頭』後再装『加熱管』同『熱敏電阻』.

3D打印-噴砂磁鋼平臺

3D打印-噴砂磁鋼平臺
3D打印-噴砂磁鋼平臺
3D打印-噴砂磁鋼平臺
3D打印-噴砂磁鋼平臺
3D打印-噴砂磁鋼平臺
3D打印-噴砂磁鋼平臺
3D打印-噴砂磁鋼平臺
3D打印-噴砂磁鋼平臺

前幾日打印『SOCKET-2011風扁支架』,ABS打印90*90MM梗有壹角收縮翘邊.搞左幾日最後502黐死底座,要重黐美紋紙.

睇『噴砂磁鋼板平臺』分两層,下層磁貼底座,3M背胶黐住熱床. 上層係噴砂磁鋼,靠下層磁貼吸死.

厰家指南熱唔超80℃.事實比美紋紙仲衰,打印ABS只有熱床上到110℃,先睇到效果.等熱床降温後自動分離.

 

X99-EATX SOCKET2011-纯銅散熱風扇

X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇
X99-EATX SOCKET2011-纯銅散熱風扇

X99-EATX愛两正方SOCKET-2011散熱. 唔諗買『熱導管散熱』.學上次咁買两拆機銅散熱,正方『90mm*90mm』, 配两『AVC-9025-12V-0.13A』.風扇底座用3D打印. 尺寸太大ABS容易收縮變形.

圖檔-PNG解析

圖檔-PNG解析
圖檔-PNG解析

舊時『游戲紋理』再用『.bmp格式』, 冇壓缩即使256色盤依然佔用吉間.

『.PNG格式』利LZ77且冇失真壓縮. 且壓縮極高, 配合256色盤,适宜作『游戲紋理』.

數據塊 數值
PNG圖檔標誌 0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A
圖檔頭 IHDR
调色板 PLTE
图像数据 IDAT
图像结束 IEND

PNG數據塊基本結构.

數據塊結构 size 簡介
LENGTH 整數4字節 數據長度
CHUNK TYPE 整數4字節 類型標記
CHUNK DATA 0~2^32字節 數據
CRC32 整數4字節 CRC32校驗

两字節肆字節數據,冚辦闌用『網络字節』存儲,需轉『主機字節』.

『網络字節』轉『主機字節』
#define  PNG_VALUE32(v)  ((v & 0xff000000) >> 24 | (v & 0x00ff0000) >> 8 | (v & 0x0000ff00) << 8 | (v & 0x000000ff) << 24)
#define  PNG_VALUE16(v)  ((v & 0xff00) >> 8 | (v & 0x00ff) << 8)

游戲引擎需讀PNG 伍個數據塊

PNG數據塊 功能簡介
IHDR 文檔頭
PLTE 色盤
IDAT 圖像數值
IEND 結束
tRNS 圖像透明
bKGD 背景色

PNG圖檔頭捌字節標記,愛蒞識别PNG

0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0A
137 P N G \r \n 26 \n

對比PNG標識

    if(memcmp(data,  0x0A1A0A0D474E5089, 8) != 0)

return false;// 非png圖檔

CRC32計算必需計『CHUNK TYPE + CHUNK DATA』, 長度『length + 4』而得.

DWORD length = PNG_VALUE32(chunk->length) + 4;
DWORD64 crc = CRC32((PBYTE)(chunk) + 4,length); CRC32計算
DWORD64 crc_ = PNG_VALUE32(chunk->crc_); 轉主機字節
  if(crc_ == crc)

return true;

 

比較crc值

首先定義PNG結构

typedef struct PNG_TAG{  
int   width; 圖宽
int   height; 圖高
int  bitCount; 位圖像素bits 8位,16位,24位,32位
PNG_RGBA       palette[256]; 调色板
PBYTE        buffer; 圖像数据
int               buffer_size; 圖像数据長度
int               length; 临時變量
z_stream stream; ZLIB解壓
} PNG, *PNG_PTR;  

文檔頭結构 IHDR

typedef struct PNG_IHDR_TAG{ 文檔頭 IHDR
int length; Data長度
DWORD type; 標記’IHDR’
DWORD width; 像素寬
DWORD height; 像素高
BYTE  BitDepth; 圖像深度
BYTE  ColorType; 顏色類型
BYTE  Compression; LZ77派生演算法 ,壹定係0
BYTE  Filter; 濾波,止值定0. 事實『0,1,2,3,4』伍種濾波
BYTE  Interlace; 隔行掃描0=冇掃描,1=(Adam7 interlace)
DWORD CRC32; CRC32校驗
}PNG_IHDR,*PNG_IHDR_PTR;  

PNG支緩伍款顏色類型

ColorType 顏色類型 像素
0=Greyscale 灰度圖像 1,2,4,8,16bit
2=Truecolour 真彩色圖像 8,16bit
3=Indexed-colour 索引彩色圖像 1,2,4,8bit
4=Greyscale with alpha 帶α通道資料灰度圖像 8,16bit
6=Truecolour with alpha 帶α通道資料真彩色圖像 8,16bit

像素排列

ColorType 像素排列
Greyscale Y
Truecolour RGB
Indexed-colour i
Greyscale with alpha RGBA
Truecolour with alpha YA

解析文檔頭 IHDR, 分配圖像時分, 每行像素多壹字節,記錄『Filter』濾波值,『0,1,2,3,4』伍種濾波;

if(IHDR->ColorType == 0)

png->bitCount = IHDR->BitDepth;

0:Greyscale:灰度圖像,1,2,4,8,16bit
if(IHDR->ColorType == 2)

png->bitCount = IHDR->BitDepth * 3;

2:Truecolour:真彩色圖像,8,16bit
if(IHDR->ColorType == 3)

png->bitCount = IHDR->BitDepth;

3:Indexed-colour:索引彩色圖像,1,2,4,8bit
if(IHDR->ColorType == 4)

png->bitCount = IHDR->BitDepth * 2;

4:Greyscale with alpha:帶α通道資料灰度圖像,8,16bit
if(IHDR->ColorType == 6)

png->bitCount = IHDR->BitDepth * 4;

6:Truecolour with alpha:帶α通道資料真彩色圖像,8,16bit
png->width  = PNG_VALUE32(IHDR->width); 像素寬
png->height = PNG_VALUE32(IHDR->height); 像素高
int byte_count  = (float)png->bitCount / 8.0f; 像素大小 BIT to BYTE
png->buffer_size = (png->width * png->height * byte_count) + (png->height * 1); 圖像数据長度,每行多壹字節
png->buffer = (PBYTE)malloc(png->buffer_size); 圖像数据

定義色盤RGB

typedef struct PNG_RGB_TYP { 色盤3字節
    BYTE red;
    BYTE green;
    BYTE blue;
} PNG_RGB, *PNG_RGB_PTR;  

定義色盤RGBA

typedef struct PNG_RGBA_TYP { 色盤4字節
    BYTE red;
    BYTE green;
    BYTE blue;
    BYTE alpha; 透明混合,透明0x00~實體0xFF
} PNG_RGBA, *PNG_RGBA_PTR;  

定義PNG色盤結构 ‘PLTE’

typedef struct PNG_PLTE_TYP {  
int length; Data長度
DWORD type; 標記’PLTE’
PNG_RGB palette[256]; 至多256色盤
DWORD CRC32; CRC32校驗
} PNG_PLTE, *PNG_PLTE_PTR;  

分析PNG色盤 ‘PLTE’

int length = PNG_VALUE32(chunk->length); 長度
int count = length / 3; 色盤量
for(int index = 0; index < count; ++index){  
png->palette[index].red      = PLTE->palette[index].red ;
png->palette[index].green  = PLTE->palette[index].green ;
png->palette[index].blue    = PLTE->palette[index].blue ;
png->palette[index].alpha  = 0xff;    } 透明0x00~實體0xFF

定義透明像素結构’tRNS’

typedef struct PNG_tRNS_TYP{  
int length; 數據長度
DWORD type; 標記’tRNS’
union {  
WORD grey; 顏色類型 0
struct {WORD Red,Green,Blue;}; 顏色類型  2
BYTE palette[256]; 顏色類型  3
DWORD CRC32; CRC32校驗
}PNG_tRNS,*PNG_tRNS_PTR;  

分析透明像素

PNG_tRNS_PTR tRNS; 透明像素
tRNS->length = PNG_VALUE32(tRNS->length); 數據長度
if(IHDR->ColorType == 0 )

tRNS->grey = PNG_VALUE16(tRNS->grey);

0:Greyscale:灰度圖像,1,2,4,8,16bit
if(IHDR->ColorType == 2  ) {

tRNS->Red   = PNG_VALUE16(tRNS->Red);

tRNS->Green = PNG_VALUE16(tRNS->Green);

tRNS->Blue  = PNG_VALUE16(tRNS->Blue);

}

2:Truecolour:真彩色圖像,8,16bit
if(IHDR->ColorType == 3) {

length = tRNS->length;

for(int i = 0; i < length; ++i) {

index = tRNS->palette[i];

png->palette[index].alpha = 0x00;

}

3:Indexed-colour:索引彩色圖像,1,2,4,8bit

透明0x00~實體0xFF

定義背景色結构 ‘bKGD’

typedef struct PNG_bKGD_TYP{  
int length; Data長度
DWORD type; 標記’bKGD’
union {  
WORD Greyscale; 顏色類型0 and 4灰度
struct{WORD Red,Green,Blue;}; 顏色類型2 and 6 -RGB三色
BYTE Palette_Index;}; 顏色類型3色盤索引
DWORD CRC32; CRC32校驗
}PNG_bKGD,*PNG_bKGD_PTR;  

分析背景色’bKGD’

int length = PNG_VALUE32(bKGD->length); 長度
if(IHDR->ColorType == 0 || IHDR->ColorType == 4)

bKGD->Greyscale = PNG_VALUE16(bKGD->Greyscale);

灰度圖像 – 帶α通道資料灰度圖像
if(IHDR->ColorType == 2 || IHDR->ColorType == 6) {

bKGD->Red = PNG_VALUE16(bKGD->Red);

bKGD->Green = PNG_VALUE16(bKGD->Green);

bKGD->Blue = PNG_VALUE16(bKGD->Blue);

}

真彩色圖像 – 帶α通道資料真彩色圖像
if(IHDR->ColorType == 3)

bKGD->Palette_Index = bKGD->Palette_Index;

索引彩色圖像

定義圖像數值結构 ‘IDAT’, 止數據塊可能有多個.

typedef struct PNG_IDAT_TYP {  
int length;  Data長度
DWORD type; 標記’PLTE’
BYTE data[1]; 經壓縮圖像數據
DWORD CRC32; CRC32校驗
} PNG_IDAT, *PNG_IDAT_PTR;  

每行像素多壹字節,記錄『Filter』濾波值,『0,1,2,3,4』伍種濾波;

int length = PNG_VALUE32(IDAT->length); 長度
int size = png->buffer_size – png->length; 剩余記憶體
Uncompress_Data_gZip(png->buffer + png->length, &size,

IDAT->data,length,

&png->stream);

解压
png->length =  png->length + size; 累積積數據長度

結束 IEND,檢測到’IEND’數據塊,己到文檔未端.

typedef struct PNG_IEND_TAG{  
int length; Data長度0
DWORD type; 標記’IEND’
DWORD CRC32; CRC32校驗
}PNG_IEND, *PNG_IEND_PTR;  

以顏色類型分別進行『反濾波』, 係每行像素首字節『濾波』值,有『0,1,2,3,4』伍款濾波, 以每粒像素單獨『復位』,帶α通道真彩色圖像8bit為例.

以cbax像素排列支缓伍款濾波

c b
a x

濾波算法

filter濾波 濾波 復位
0= None Filt(x) = Orig(x) Recon(x) = Filt(x)
1= Sub Filt(x) = Orig(x) – Orig(a) Recon(x) = Filt(x) + Recon(a)
2= Up Filt(x) = Orig(x) – Orig(b) Recon(x) = Filt(x) + Recon(b)
3= Average Filt(x) = Orig(x) – floor((Orig(a) + Orig(b)) / 2) Recon(x) = Filt(x) + floor((Recon(a) + Recon(b)) / 2)
4= Paeth Filt(x) = Orig(x) – PaethPredictor(Orig(a), Orig(b), Orig(c)) Recon(x) = Filt(x) + PaethPredictor(Recon(a), Recon(b), Recon(c))

復位算法

int byte_count   = 4; 每粒像素4字節
int pixel_size = png->width * png->height; 總像素量
int buffer_size = png->width * png->height * byte_count; 總字節量
PBYTE buffer = (PBYTE)malloc(buffer_size); 反濾波影像數據
int col_size_recon = (png->width * 4) ; 復位後每行字節量
int col_size_filt  = (png->width * 4)  + 1; 濾波後每行字節量
for(int j = 0; j < png->height ; ++j) 每行像素
int filter = png->buffer[col_size_filt * j]; 行首濾波=1 byte

處理filter濾波0= None

if(filter == 0) { None
for(int i = 0; i < png->width; ++i){ 逐像素復位
Red = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 0]; x像素紅色
Green = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 1]; x像素藍色
Blue = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 2]; x像素錄色
Alpha = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 3]; x像素透明
buffer[(col_size_recon * j) + (i * 4) + 0] = Red; 復位像素紅色
buffer[(col_size_recon * j) + (i * 4) + 1] = Green; 復位像素藍色
buffer[(col_size_recon * j) + (i * 4) + 2] = Blue; 復位像素綠色
buffer[(col_size_recon * j) + (i * 4) + 3] = Alpha;         }} 復位像素透明

處理filter濾波1 =Sub

if(filter == 1)          { Sub
for(int i = 0; i < png->width; ++i){ 逐像素復位
Red = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 0]; x像素紅色
Green = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 1]; x像素藍色
Blue = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 2]; x像素錄色
Alpha = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 3]; x像素透明
aRed = aGreen = aBlue = aAlpha = 0; 清零
if(i > 0) {  
aRed = buffer[(col_size_recon * j) + ((i-1) * 4) + 0]; a像素紅色
aGreen = buffer[(col_size_recon * j) + ((i-1) * 4) + 1]; a像素藍色
aBlue = buffer[(col_size_recon * j) + ((i-1) * 4) + 2]; a像素綠色
aAlpha = buffer[(col_size_recon * j) + ((i-1) * 4) + 3]; } a像素透明
buffer[(col_size_recon * j) + (i * 4) + 0] = Red + aRed; 復位像素紅色
buffer[(col_size_recon * j) + (i * 4) + 1] = Green + aGreen; 復位像素藍色
buffer[(col_size_recon * j) + (i * 4) + 2] = Blue + aBlue; 復位像素綠色
buffer[(col_size_recon * j) + (i * 4) + 3] = Alpha + aAlpha; }} 復位像素透明

處理filter濾波2 =Up

if(filter == 2){ Up
for( i = 0; i < png->width; ++i){ 逐像素復位
Red = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 0]; x像素紅色
Green = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 1]; x像素藍色
Blue = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 2]; x像素錄色
Alpha = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 3]; x像素透明
bRed = bGreen = bBlue = bAlpha = 0; 清零
if(j > 0) {  
bRed = buffer[(col_size_recon * (j-1)) + (i * 4) + 0]; b像素紅色
bGreen = buffer[(col_size_recon * (j-1)) + (i * 4) + 1]; b像素藍色
bBlue = buffer[(col_size_recon * (j-1)) + (i * 4) + 2]; b像素綠色
bAlpha = buffer[(col_size_recon * (j-1)) + (i * 4) + 3];} b像素透明
buffer[(col_size_recon * j) + (i * 4) + 0] = Red + bRed; 復位像素紅色
buffer[(col_size_recon * j) + (i * 4) + 1] = Green + bGreen; 復位像素藍色
buffer[(col_size_recon * j) + (i * 4) + 2] = Blue + bBlue; 復位像素綠色
buffer[(col_size_recon * j) + (i * 4) + 3] = Alpha + bAlpha; }} 復位像素透明

處理filter濾波3 = Average

if(filter == 3)          { Average
for( i = 0; i < png->width; ++i){ 逐像素復位
Red = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 0]; x像素紅色
Green = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 1]; x像素藍色
Blue = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 2]; x像素錄色
Alpha = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 3]; x像素透明
aRed = aGreen = aBlue = aAlpha = 0; 清零
bRed = bGreen = bBlue = bAlpha = 0; 清零
if(i > 0) {  
aRed = buffer[(col_size_recon * j) + ((i-1) * 4) + 0]; a像素紅色
aGreen = buffer[(col_size_recon * j) + ((i-1) * 4) + 1]; a像素藍色
aBlue = buffer[(col_size_recon * j) + ((i-1) * 4) + 2]; a像素綠色
aAlpha = buffer[(col_size_recon * j) + ((i-1) * 4) + 3]; } a像素透明
if(j > 0) {  
bRed = buffer[(col_size_recon * (j-1)) + (i * 4) + 0]; b像素紅色
bGreen = buffer[(col_size_recon * (j-1)) + (i * 4) + 1]; b像素藍色
bBlue = buffer[(col_size_recon * (j-1)) + (i * 4) + 2]; b像素綠色
bAlpha = buffer[(col_size_recon * (j-1)) + (i * 4) + 3];} b像素透明
buffer[(col_size_recon * j) + (i * 4) + 0] = Red + ((aRed+bRed)/2); 復位像素紅色
buffer[(col_size_recon * j) + (i * 4) + 1] = Green + ((aGreen+bGreen)/2); 復位像素藍色
buffer[(col_size_recon * j) + (i * 4) + 2] = Blue + ((aBlue+bBlue)/2); 復位像素綠色
buffer[(col_size_recon * j) + (i * 4) + 3] = Alpha + ((aAlpha+bAlpha)/2); }} 復位像素透明

Paeth預測函式

BYTE PaethPredictor_PNG(BYTE a,BYTE b,BYTE c){ 預測函式
int p;  
int pa,pb,pc;  
p = a + b – c;  
pa = abs(p – a);  
pb = abs(p – b);  
pc = abs(p – c);  
if (pa <= pb && pa <= pc )  return a;  
else if (pb <= pc ) return b;  
else return c;}  

處理filter濾波4 =Paeth預測

if(filter == 3)          { Average
for( i = 0; i < png->width; ++i){ 逐像素復位
Red = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 0]; x像素紅色
Green = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 1]; x像素藍色
Blue = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 2]; x像素錄色
Alpha = png->buffer[(col_size_filt * j) + 1 + (i * 4) + 3]; x像素透明
aRed = aGreen = aBlue = aAlpha = 0; 清零
bRed = bGreen = bBlue = bAlpha = 0; 清零
cRed = cGreen = cBlue = cAlpha = 0; 清零
if(i > 0) {  
aRed = buffer[(col_size_recon * j) + ((i-1) * 4) + 0]; a像素紅色
aGreen = buffer[(col_size_recon * j) + ((i-1) * 4) + 1]; a像素藍色
aBlue = buffer[(col_size_recon * j) + ((i-1) * 4) + 2]; a像素綠色
aAlpha = buffer[(col_size_recon * j) + ((i-1) * 4) + 3]; } a像素透明
if(j > 0) {  
bRed = buffer[(col_size_recon * (j-1)) + (i * 4) + 0]; b像素紅色
bGreen = buffer[(col_size_recon * (j-1)) + (i * 4) + 1]; b像素藍色
bBlue = buffer[(col_size_recon * (j-1)) + (i * 4) + 2]; b像素綠色
bAlpha = buffer[(col_size_recon * (j-1)) + (i * 4) + 3];} b像素透明
if(i > 0 && j > 0) {  
cRed = buffer[(col_size_recon * (j-1)) + ((i-1) * 4) + 0]; c像素紅色
cGreen = buffer[(col_size_recon * (j-1)) + ((i-1) * 4) + 1]; c像素藍色
cBlue = buffer[(col_size_recon * (j-1)) + ((i-1) * 4) + 2]; c像素綠色
cAlpha = buffer[(col_size_recon * (j-1)) + ((i-1) * 4) + 3];} c像素透明
buffer[(col_size_recon * j) + (i * 4) + 0] = Red + PaethPredictor_PNG(aRed,bRed,cRed); 復位像素紅色
buffer[(col_size_recon * j) + (i * 4) + 1] = Green + PaethPredictor_PNG(aGreen,bGreen,cGreen); 復位像素藍色
buffer[(col_size_recon * j) + (i * 4) + 2] = Blue + PaethPredictor_PNG(aBlue,bBlue,cBlue); 復位像素綠色
buffer[(col_size_recon * j) + (i * 4) + 3] = Alpha + PaethPredictor_PNG(aAlpha,bAlpha,cAlpha);}} 復位像素透明

释放圖像

free(png->buffer); 释放
png->buffer = buffer; 替换復位圖像
png->bitCount = 32; rgba
png->buffer_size = buffer_size;  

 

3D打印-電腦主板腳柱

3D打印-電腦主板腳柱
3D打印-電腦主板腳柱
3D打印-電腦主板腳柱
3D打印-電腦主板腳柱
3D打印-電腦主板腳柱
3D打印-電腦主板腳柱

買块雜牌X99-EATX主板,玖鑼𢇁竉位,有叁鑼𢇁竉位唔對竉.為装工業鋁型材, 斬脚指避沙蟲. EATX主板300*330mm太大,缺鑼𢇁撥插影響主板變形.冇計.唯重搭脚柱.

 

Font-源界明朝

Font-源界明朝
Font-源界明朝

 

Adobe』同『Google』合作,制作『日月韓漢』矢量字庫,目前支缓65535『日月韓漢』字.以字量蒞睇依然有大量異體字未收納.

1.          官網下載源界明朝字庫,

2.          解壓

3.          將『SuperOTC\SourceHanSerif.ttc』复制到『C:\Windows\Fonts

https://source.typekit.com/source-han-serif/tw/

https://github.com/adobe-fonts/source-han-serif/archive/1.001R.zip

https://typekit.com/fonts/source-han-sans-traditional-chinese

 

Android Studio-Gradle連缐超時

Android Studio-Gradle連缐超時
Android Studio-Gradle連缐超時

随著『Android studio』更新版本,『Gradle』需升級.

  1. 『File』->『project Structure』
  2. 『Gradle version』揀新版本
  3. 撳右下角『Apply』自動下載.點知彈出『Connection timed out:』連缐超時.
  4. 编輯『Project\gradle\wrapper\gradle-wrapper.properties』
  5. 『distributionUrl』係『Gradle』升級包下載路徑.
https://services.gradle.org/distributions/gradle-8.2.1-bin.zip
  1. 『zipStorePath』係升級包擺放點『wrapper/dists』
  2. 下載後將『gradle-8.2.1-bin.zip』擺係.
C:\Users\admin\.gradle\wrapper\dists\gradle-8.2.1-bin\5hap6b9n41hkg4jeh2au2pllh\gradle-8.2.1-bin.zip

 

 

 

Connection timed out: no further information. If you are behind an HTTP proxy, please configure the proxy settings either in IDE or Gradle.

 

Android studio-gradle版本異常

Android studio-gradle版本異常
Android studio-gradle版本異常

Android studio近日彈出gradle版本晤兼容.修改工程配置. 如果唔得重裝『Android Studio』.

  1. 撳『HELP』->『ABOUT』. 『Android Studio版本』确定『Gradle插件版本』
Android Studio版本 Android Gradle Plugin Version插件版本
Hedgehog | 2023.1.1 3.2~8.2
Giraffe | 2022.3.1 3.2~8.1
Flamingo | 2022.2.1 3.2~8.0
Electric Eel | 2022.1.1 3.2~7.4
Dolphin | 2021.3.1 3.2~7.3
  1. 撳『File』->『project Structure』
  2. 『Gradle version』揀版本
Android Gradle Plugin Version插件版本 Gradle Version
8.1 8.0
8.0 8.0
7.4 7.5
7.4 7.4
7.2 7.3.3
7.1 7.2
7.0 7.0
4.2.0+ 6.7.1
  1. 撳右下角『Apply』自動下載.
The project is using an incompatible version (AGP 8.1.0) of the Android Gradle plugin. Latest supported version is AGP 8.0.0

 

Windows10-解除更新

Windows10-解除更新
Windows10-解除更新
Windows10-解除更新
Windows10-解除更新

『Win10』自動更新後頻頻輕機,舊时『Win9x/WinXP』係著機果陣『F8鍵』入『安全模式』修復系统.係『Win10』時代入『修復』卸載更新.

  1. 著機睇見『Win10-logo』後撳『reset鍵』.重复三次登入『修復』
  2. 『高級選項』->『疑难解答』->『高級選項』->『解除更新』
  3. 解除更新.
  4. 入『Win10』
  5. 『設定』->『Windows Update』
  6. 連繼撳『將更新暫停7天』,

Android Studio-ZLIB壓縮同解壓

Android Studio-ZLIB壓縮同解壓
Android Studio-ZLIB壓縮同解壓

ZLIB』開源『壓縮』同『解壓』程式庫, 支持『DEFLATE』冇損壓縮算法,佢混合『LZ77算法』同『霍夫曼編碼』.

『DEFLATE』壓縮算法冇專利權.畀人大量應用係『網络』『圖檔』『文檔』『影片』.

.PNG/ Libpng 圖檔解壓
.ZIP 壓縮檔
.tar 壓縮檔
.gz 壓縮檔
HTTP 壓縮傅送
FFmpeg 影片解壓

下载『ZLIB

http://www.zlib.net/
http://www.zlib.net/zlib-1.2.13.tar.gz

『Android studio』內置『ZLIB』, 唔使下載.但要係『CMakeLists.txt』增添『zlib』庫.

CMakeLists.txt文檔  
find_library( z-lib z ) 搜索zlib
target_link_libraries( ${z-lib} ) 連接zlib

包含『ZLIB』頭文檔

#include <zlib.h> Zlib-api
#include <zconf.h>  

『z_stream』壓縮同解壓皆需此結构體

z_stream stream; zlib流結构體
stream.zalloc = Z_NULL; NULL用默認記憶體分配函数
stream.zfree  = Z_NULL; NULL用默認記憶體释放函数
stream.opaque = Z_NULL;  
stream.next_in  = (Bytef*)sour; 蒞源
stream.avail_in = (uInt)sour_length; 蒞源長
stream.next_out = dest; 輸出
stream.avail_out = (uInt)*dest_length; 輸出長

ZLIB』壓縮分叁步

壓縮  
deflateInit(&stream, level) 分配記憶體,level壓縮等級
deflate(&stream, flush); 壓縮數據, flush設0
deflateEnd(&stream); 释放記憶體

 

int deflateInit2( deflateInit()加强版
z_streamp strm, zlib流結构體
int  level, level壓縮等級0~9.

0:速度快,唔壓縮.

9:速度慢,壓縮率高.

int  method, 壓縮算法僅支緩Z_DEFLATED
int  windowBits, 處理RAW DEFLATE手法.
int  memLevel, 指定記憶體分配MAX_MEM_LEVEL
int  strategy)); 壓縮策略,僅影響壓縮比.默認Z_DEFAULT_STRATEGY

 

level 壓縮等級
#define Z_NO_COMPRESSION         0 唔壓縮
#define Z_BEST_SPEED             1 高速,低壓縮率
#define Z_BEST_COMPRESSION       9 高壓縮率, 慢速
#define Z_DEFAULT_COMPRESSION  (-1) 默認壓縮

 

windowBits 處理RAW DEFLATE手法.
8~15: 純deflate壓縮
-8~-15: zlib頭 + deflate + zlib尾
> 16: Gzip頭+ deflate + Gzip尾

 

method 壓縮算法
#define Z_DEFLATED   8 DEFLATE冇損壓縮

 

memLevel 記憶體分配
MemLevel=1 最小記憶體,速度慢壓縮比低
MemLevel=9

#define MAX_MEM_LEVEL 9

最大記憶體,最佳速度
MemLevel=8 默認值

 

strategy 壓縮算法設定
#define Z_FILTERED            1 僅FILTERED生成數據
#define Z_HUFFMAN_ONLY        2 僅霍夫曼編碼
#define Z_RLE                 3 匹配長度=1
#define Z_FIXED               4 禁霍夫曼編碼
#define Z_DEFAULT_STRATEGY    0 默認壓縮設定

ZLIB』解壓分叁步

解壓  
inflateInit(&stream) 分配記憶體
inflate(&stream, Z_NO_FLUSH); 解压數據
inflateEnd(stream); 释放記憶體

 

返回碼  
#define Z_OK            0  
#define Z_STREAM_END    1 結束
#define Z_NEED_DICT     2 愛密碼
#define Z_ERRNO        (-1)  
#define Z_STREAM_ERROR (-2)  
#define Z_DATA_ERROR   (-3) 加密數據損壞壞,或缺失.
#define Z_MEM_ERROR    (-4) 唔够記憶體
#define Z_BUF_ERROR    (-5) 唔够緩存
#define Z_VERSION_ERROR (-6)  

 

解壓示例

int Uncompress(PBYTE dest,int * dest_length,PBYTE sour,int sour_length)

{

z_stream stream;

int ret;

stream.zalloc = (alloc_func)0;

stream.zfree  = (free_func)0;

stream.opaque = (voidpf)0;

stream.next_in  = (Bytef*)sour;

stream.avail_in = (uInt)sour_length;

stream.next_out = dest;

stream.avail_out = (uInt)*dest_length;

MAX_MEM_LEVEL

ret = inflateInit2(&stream, 16+MAX_WBITS);

if (ret != Z_OK)

return ret;

 

ret = inflate(&stream, Z_NO_FLUSH);// 解压

*dest_length = stream.total_out;

inflateEnd(&stream);

return ret;

}

 

壓缩示例

bool Compress(PBYTE dest,int * dest_length,PBYTE sour,int sour_length, int level)

{

int ret, flush;

int sour_offset,dest_offset;

int have;

z_stream stream;

BYTE in[ZIP_CHUNK];

BYTE out[ZIP_CHUNK];

 

stream.zalloc = Z_NULL;// 内存分配函数

stream.zfree  = Z_NULL;// 内存释放函数

stream.opaque = Z_NULL;

stream.next_in  = (Bytef*)sour;

stream.avail_in = (uInt)sour_length;

stream.next_out = dest;

stream.avail_out = (uInt)*dest_length;

 

ret = deflateInit(&stream, level);// 内存分配

if (ret != Z_OK)

return false;

 

ret = deflate(&stream, flush);  // 进行压缩

*dest_length = stream.total_out;

 

deflateEnd(&stream);// 释放内存

return ret;

}

Android studio-『C/C++ Language Support』

Android studio-『C/C++ Language Support』
Android studio-『C/C++ Language Support』

『Android studio』死機後,點唔開『.CPP/.C』文檔. 連落斷點都.發視『C/C++ Language Support』畀ANDROID禁用Disabled.

  1. 撳『File』->『Settings』
  2. 撳『Settings』->『Plugins』
  3. 撳『Installed』->『C/C++ Language Support』
  4. 撳『Enabled』著 C++插件

CRC32校驗

CRC32校驗
CRC32校驗

『CRC32』同『MD5』『SHA1』壹樣,計『貳进制』數值『指紋』,佢速度快,HASH校验值肆字節.两DWORD值相等比較. 适宜網络數據傳輸, 校驗數據係咪完璧.

DWORD CRC32_Table[256] = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d,
};

DWORD CRC32(PBYTE buf, int len){
int i;
DWORD crc;

crc = 0xffffffffL;
for (i = 0; i < len; ++i )
crc = CRC32_Table[(crc ^ buf[i]) & 0xff] ^ (crc >> 8);

crc = crc ^ 0xffffffffL;
return crc;
}

 

M.2 SSD 2280轉22110槽

M.2 SSD 2280轉22110槽
M.2 SSD 2280轉22110槽
M.2 SSD 2280轉22110槽
M.2 SSD 2280轉22110槽
M.2 SSD 2280轉22110槽
M.2 SSD 2280轉22110槽
M.2 SSD 2280轉22110槽
M.2 SSD 2280轉22110槽

TOSHIBA XG3 1TB』冇拉拉唔識認,後蒞『Seagate XM1440 960Gb』都唔識認.睇蒞係中古『臺達FLEX-500』造工嘛嘛.

上次買『Seagate XM1440 960Gb』係22110規格.『x99-itx』係2280規格且係主板背面.

『M.2槽2280轉22110』.卡高啱啱好利用機箱托板散热,『XM1440』維持係50℃,基本冇跌速.

 

 

 

色鑑-漆黑

色鑑-漆黑
色鑑-漆黑

『漆黑』指光面深黑色. 又呌『純黑』.『漆』蒞自『漆樹汁』微毒,『漆』要維持一定濕度先會干透,否則會吸空汽水份.干透後變黑冇毒.

『漆』令木表層變硬, 防水驅蟲.

漆黑 純黑
源料 漆樹汁
英文
RGB
RGB
CMYK C=70 M=50 Y=50 K=100

C=50 M=50 Y=0 K=100

用途 天然涂料

 

色鑑-藍色

色鑑-藍色
色鑑-藍色

印度『蓼藍』又呌『藍草』經曬干發酵制染液.反䨱浸染成藍布.驅蟲保暖.

『藍色』又叫『日本藍』, 用係『浴衫』『門簾』『手巾』.

藍色 日本藍
源料 蓼藍/藍草
英文 Japan Blue
RGB  
RGB  
CMYK C=92 M=49 Y=22 K=0

C=70 M=20 Y=0 K=60

用途 植物藍色顏料

 

 

色鑑-朱色

色鑑-朱色
色鑑-朱色

天然『朱砂』又呌『辰砂』.帶黃鮮赤色,極貴赤色顏料,用料整『朱墨』『朱印』『朱色巫女長裙』. 『朱印』專供畀武士.

『朱色』屬火. 吉利避邪避災.

朱色  
源料 朱砂/辰砂
英文  
RGB 0xe94709
RGB R=233 g=71 b=9
CMYK C=0 m=85 y=100 k=0
用途 天然赤色顏料

 

色鑑-丹色

色鑑-丹色
色鑑-丹色

『丹』主成份係水銀同硫磺天然礦物.愛蒞整顏料同入藥. 所以『丹色』含有劇毒性.色近紅土色, 比『朱色』偏紅.

紅亦即火屬,驅魔消厄.神社神宫神殿木制建築皆塗『丹色』, 呌『丹塗』.

木表層『丹塗』可防蟲蛀.

『丹色』取自天然礦石『鉛丹』, 又呌『光明丹』.

丹色 光明丹
源料 鉛丹
英文 Cinnabar
RGB  
RGB  
CMYK C=0 M=59 Y=78 K=11

C=0 M=68 Y=80 K=20

用途 天然紅色顏料

 

色鑑-綠青

色鑑-綠青
色鑑-綠青

『綠青』源自『孔雀石』,天然綠色顏料.作為傳統綠色顏料,愛蒞畫草草木木.

將天然『孔雀石』敲碎磨粉.又呌『岩綠青』/『松葉綠青』.

神殿屋頂採用綠青色銅瓦.

青銅佛像長期好天曬落雨淋. 青銅氧化生鏽. 此視像亦呌『綠青』.

綠青 岩綠青/松葉綠青
  孔雀石/ Malachite
英文  
RGB R=108 g=160 b=129

R=76 g=142 b=112

RGB 0x6ca081

0x4c8e70

CMYK C=62 M=23 Y=55 K=0

C=70 M=25 Y=60 K=10

用途 天然綠色顏料

 

色鑑-黃金色

色鑑-黃金色
色鑑-黃金色
色鑑-黃金色
色鑑-黃金色
色鑑-金色
色鑑-金色

『金色』同『黃金色』係基本壹至,净係文字表含意唔同.『黃金色』會諗到『金幣』.

『金色』令人諗到落日映照湖水光輝,稻穗随風搖擺.

COLOR RGB CMYK
黃金色 R=216 G=165 B=0

0xd8a500

C=0 M=30 Y=100 K=20
黃金色 R=214 G=142 B=49

0xd68e31

C=15 M=45 Y=100 K=0
金色 R=217 G=173 B=0

0Xd9ad00

C=0 M=25 Y=100 K=20

 

Android studio-Image Asset自動生成背景透明圖檔

Android studio-Image Asset自動生成背景透明圖檔
Android studio-Image Asset自動生成背景透明圖檔
Android studio-Image Asset自動生成背景透明圖檔
Android studio-Image Asset自動生成背景透明圖檔

『Android studio』內置架餐『Image Asset』. 畀幅圖檔佢,『Image Asset』帮你自動生成各式圖檔.

揀『Launcher Icons(Legacy only)』冚辦闌圖檔背景透明.

『Android 8.0』及以上,程式圖檔强制背景色,揀『Launcher Icons(Adaptive and Legacy)』.

Android 8.0及以上 圖檔背景白色 Launcher Icons(Adaptive and Legacy)
Android 7.1及以下 圖檔背景透明 Launcher Icons(Legacy only)
  1. 揀『Project』->『app』
  2. 撳『File』->『New』->『Image Asset』
  3. 設置『Asset Studio』
Configure Image Asset Android 8.0(API 26) 及以上
Icon type Launcher Icons(Adaptive and Legacy)
Name ic_launcher
Layer name ic_launcher_foreground
Asset type Image
path 『.png』背景透明圖檔
Trim 修剪勾yes
Resize 100%
Asset type 勾Color
Color 0xFFFFFF

 

Configure Image Asset Android 7.1以下
Icon type Launcher Icons(Legacy only)
Name ic_launcher
Asset type 勾Image
Path 『.png』背景透明圖檔
Trim 修剪勾yes
Padding 0%
Background 背景0xFFFFFF
Scaling Crop/ Shrink to fit自适应宽度
Shape 揀None
Effect 勾None

 

 

資料夾 Size(px)
mipmap-xxxhdpi 192*192
mipmap-xxhdpi 144*144
mipmap-xhdpi 96*96
mipmap-hdpi 72*72
mipmap-mdpi 48*48

 

Android Studio-Cannot load settings from file『misc.xml』

Android Studio-Cannot load settings from file『misc.xml』
Android Studio-Cannot load settings from file『misc.xml』

Android Studio係右下角彈出警示,『Cannot load settings from file』冇法載入『misc.xml』,事實係文檔損毁.內容大致如下.粘貼後諸存.

『misc.xml』文檔
<?xml version=”1.0″ encoding=”UTF-8″?>

<project version=”4″>

<component name=”ProjectRootManager” version=”2″ languageLevel=”JDK_17″ default=”true” project-jdk-name=”Android Studio default JDK” project-jdk-type=”JavaSDK”>

<output url=”file://$PROJECT_DIR$/build/classes” />

</component>

<component name=”ProjectType”>

<option name=”id” value=”Android” />

</component>

</project>

 

Load settings
Cannot load settings from file
“D:\ANDROID\GeomanticCompass\.idea\misc.xml”;illegal character(NULL,Unicode 0) encountered: not valid in any content at[row,col{unknown-source}]:[1,2] Please correct the file content

 

年號

年號
年號

年號愛蒞紀年,『天皇更替』『天災人禍』之時更改年號.

飛鳥時代-年號/元號 儒略曆 天皇
大化 645年6月 孝德天皇
白雉 650年2月
朱鳥 686年7月 天武天皇
大寶 701年3月 文武天皇
慶雲 704年5月
和銅 708年正月 元明天皇

 

奈良時代-年號 儒略曆  
靈龜 715年九月 元正天皇
養老 717年十一月
神龜 724年二月 聖武天皇
天平 729年八月
天平感寶 749年四月
天平勝寶 749年七月 孝謙天皇
天平寶字 757年八月
天平神護 765年正月 稱德天皇
神護景雲 767年八月
寶龜 770年十月 光仁天皇
天應 781年四月
延曆 782年八月 桓武天皇

 

平安時代-年號 儒略曆 天皇
大同 806年五月 平城天皇
弘仁 810年九月 嵯峨天皇
天長 824年正月 淳和天皇
承和 834年正月 仁明天皇
嘉祥 848年六月
仁壽 851年四月 文德天皇
齊衡 854年十一月
天安 857年二月
貞觀 859年四月 清和天皇
元慶 877年四月 陽成天皇
仁和 885年二月 光孝天皇
寬平 889年四月 宇多天皇
昌泰 898年四月 醍醐天皇
延喜 901年七月
延長 923年閏四月
承平 931年四月 朱雀天皇
天慶 938年五月
天曆 947年四月 村上天皇
天德 957年十月
應和 961年二月
康保 964年七月
安和 968年八月 冷泉天皇
天祿 970年三月 圓融天皇
天延 973年十二月
貞元 976年七月
天元 978年十一月
永觀 983年四月
寬和 985年四月 花山天皇
永延 987年四月 一條天皇
永祚 989年八月
正曆 990年十一月
長德 995年二月
長保 999年正月
寬弘 1004年七月
長和 1012年十二月 三條天皇
寬仁 1017年四月 後一條天皇
治安 1021年二月
萬壽 1024年七月
長元 1028年七月
長曆 1037年四月 後朱雀天皇
長久 1040年十一月
寬德 1044年十一月
永承 1046年四月 後冷泉天皇
天喜 1053年正月
康平 1058年八月
治曆 1065年八月
延久 1069年四月 後三條天皇
承保 1074年八月 白河天皇
承曆 1077年十一月
永保 1081年二月
應德 1084年二月
寬治 1087年四月 堀河天皇
嘉保 1094年十二月
永長 1096年十二月
承德 1097年十一月
康和 1099年八月
長治 1104年二月
嘉承 1106年四月
天仁 1108年八月 鳥羽天皇
天永 1110年七月
永久 1113年七月
元永 1118年四月
保安 1120年四月
天治 1124年四月 崇德天皇
大治 1126年正月
天承 1131年正月
長承 1132年八月
保延 1135年四月
永治 1141年七月
康治 1142年四月 近衛天皇
天養 1144年二月
久安 1145年七月
仁平 1151年正月
久壽 1154年十月
保元 1156年四月 後白河天皇
平治 1159年四月 二條天皇
永曆 1160年正月
應保 1161年九月
長寬 1163年三月
永萬 1165年六月
仁安 1166年八月 六條天皇
嘉應 1169年四月 高倉天皇
承安 1171年四月
安元 1175年七月
治承 1177年八月
養和 1181年七月 安德天皇
壽永 1182年五月
元曆 1184年四月 後鳥羽天皇

 

鎌倉時代-年號 儒略曆 天皇
文治 1185年八月 後鳥羽天皇
建久 1190年四月
正治 1199年四月 土御門天皇
建仁 1201年二月
元久 1204年二月
建永 1206年四月
承元 1207年十月
建曆 1211年三月 順德天皇
建保 1213年十二月
承久 1219年四月
貞應 1222年四月 後堀河天皇
元仁 1224年十一月
嘉祿 1225年四月
安貞 1227年十二月
寬喜 1229年三月
貞永 1232年四月
天福 1233年四月 四條天皇
文曆 1234年十一月
嘉禎 1235年九月
曆仁 1238年十一月
延應 1239年二月
仁治 1240年七月
寬元 1243年二月 後嵯峨天皇
寶治 1247年二月 後深草天皇
建長 1249年三月
康元 1256年十月
正嘉 1257年三月
正元 1259年三月
文應 1260年四月 龜山天皇
弘長 1261年二月
文永 1264年二月
建治 1275年四月 後宇多天皇
弘安 1278年二月
正應 1288年四月 伏見天皇
永仁 1293年八月
正安 1299年四月 後伏見天皇
乾元 1302年十一月 後二條天皇
嘉元 1303年八月
德治 1306年十二月
延慶 1308年十月 花園天皇
應長 1311年四月
正和 1312年三月
文保 1317年二月
元應 1319年四月 後醍醐天皇
元亨 1321年二月
正中 1324年十二月
嘉曆 1326年四月
元德 1329年八月
元弘 1331年八月

 

室町時代-建武新政年號 儒略曆 天皇
建武 1334年正月 後醍醐天皇

 

室町時代-南朝年號 儒略曆 天皇
延元 1336年二月 後醍醐天皇
興國 1340年四月 後村上天皇
正平 1346年四月
建德 1370年十二月 長慶天皇
文中 1372年三月
天授 1375年五月
弘和 1381年二月
元中 1384年四月 後龜山天皇

 

室町時代-北朝年號 儒略曆 天皇
建武 1336年二月 光明天皇
曆應 1338年八月
康永 1342年四月
貞和 1345年十月
觀應 1350年二月 崇光天皇
文和 1352年九月 後光嚴天皇
延文 1356年三月
康安 1361年三月
貞治 1362年九月
應安 1368年二月
永和 1375年二月 後圓融天皇
康曆 1379年三月
永德 1381年二月
至德 1384年二月 後小松天皇
嘉慶 1387年八月
康應 1389年二月
明德 1390年三月

 

室町時代-明德統一年號 儒略曆 天皇
應永 1394年七月 後小松天皇
正長 1428年四月 稱光天皇
永享 1429年九月 後花園天皇
嘉吉 1441年二月
文安 1444年二月
寶德 1449年七月
享德 1452年七月
康正 1455年七月
長祿 1457年九月
寬正 1460年十二月
文正 1466年二月 後土御門天皇
應仁 1467年三月
文明 1469年四月
長享 1487年七月
延德 1489年八月
明應 1492年七月
文龜 1501年二月 後柏原天皇
永正 1504年二月
大永 1521年八月
享祿 1528年八月 後奈良天皇
天文 1532年七月
弘治 1555年十月
永祿 1558年二月 正親町天皇

 

安土桃山時代-年號 儒略曆 天皇
元龜 1570年四月 正親町天皇
天正 1573年七月
文祿 1592年十二月 後陽成天皇
慶長 1596年十月

 

江戶時代-年號 儒略曆 天皇
元和 1615年七月 後水尾天皇
寬永 1624年二月
正保 1644年十二月 後光明天皇
慶安 1648年二月
承應 1652年九月
明曆 1655年四月 後西天皇
萬治 1658年七月
寬文 1661年四月
延寶 1673年九月 靈元天皇
天和 1681年九月
貞享 1684年二月
元祿 1688年九月 東山天皇
寶永 1704年三月
正德 1711年四月 中御門天皇
享保 1716年六月
元文 1736年四月 櫻町天皇
寬保 1741年二月
延享 1744年二月
寬延 1748年七月 桃園天皇
寶曆 1751年十月
明和 1764年六月 後櫻町天皇
安永 1772年十一月 後桃園天皇
天明 1781年四月 光格天皇
寬政 1789年正月
享和 1801年二月
文化 1804年二月
文政 1818年四月 仁孝天皇
天保 1830年十二月
弘化 1844年十二月
嘉永 1848年二月 孝明天皇
安政 1854年十一月
萬延 1860年三月
文久 1861年二月
元治 1864年二月
慶應 1865年四月

 

一世一元-年號 儒略曆 天皇
明治 1868年舊曆9月 明治天皇
大正 1912年7月 大正天皇
昭和 1926年12月 昭和天皇
平成 1989年1月 明仁天皇
令和 2019年5月 德仁天皇

 

禮拜行星

禮拜 行星 希臘神祇
禮拜日SUNDAY 日曜日 太陽神
禮拜壹MONDAY 月曜日 月光女神
禮拜貳TUESDAY 火曜日 戰神
禮拜三WEDNESDAY 水曜日 神使
禮拜肆THURSDAY 木曜日 天神
禮拜伍FRIDAY 金曜日 愛神
禮拜陸SATURDAY 土曜日 農神

 

月曆

月曆
月曆

『月曆』即係『崇禎曆書』. 将『陰曆』同『陽曆』同步. 『崇禎曆書』 由 『湯若望』『龍華民』『羅雅谷』『鄧玉函』編纂.

  1. 『年』繞日光轉壹圈為壹年,以60『干支』编年循環往復.
10天干 甲乙丙丁戊己庚辛壬癸
12地支 子丑寅卯辰巳午未申酉戌亥
60干支 甲子,乙丑,丙寅,丁卯,戊辰,己巳,庚午,辛未,壬申,癸酉,

甲戌,乙亥,丙子,丁丑,戊寅,己卯,庚辰,辛巳,壬午,癸未,

甲申,乙酉,丙戌,丁亥,戊子,己丑,庚寅,辛卯,壬辰,癸巳,

甲午,乙未,丙申,丁酉,戊戌,己亥,庚子,辛丑,壬寅,癸卯,

甲辰,乙巳,丙午,丁未,戊申,己酉,庚戌,辛亥,壬子,癸丑,

甲寅,乙卯,丙辰,丁己,戊午,己未,庚申,辛酉,壬戌,癸亥

  1. 『月』每年『12月』, 每月『29日』或『30日』,『初壹』新月,『拾伍』满月. 由『新月』至『满月』至到『新月』,大约『27日』至『29.83日』變動.
12地支
子月 正月
丑月 貳月
寅月 叁月
卯月 肆月
辰月 伍月
巳月 陸月
午月 柒月
未月 捌月
申月 玖月
酉月 拾月”
戌月 冬月
亥月 臘月
  1. 『閏月』, 『陰曆』每年『353日/354日/355日』, 比『陽曆』小『11日/12日』, 為左同『陽曆』同步. 每隔『3年/4年』設一閏, 『閏年』有『13月』.
  2. 『日』地球自轉壹圈.此於『子時』终於『亥時』. 『子時』此於『23:00』终於『00:59』; 『亥時』此於『21:00』终於『22:59』; 所以每日此於『23:00』终於『22:59』;
  3. 『時』每日『12時辰』, 12地支『子丑寅卯辰巳午未申酉戌亥』
12地支 時鐘
子時 23:00~00:59
丑時 01:00~02:59
寅時 03:00~04:59
卯時 05:00~06:59
辰時 07:00~08:59
巳時 09:00~10:59
午時 11:00~12:59
未時 13:00~14:59
申時 15:00~16:59
酉時 17:00~18:59
戌時 19:00~20:59
亥時 21:00~22:59
  1. 『二十四節氣』以繞日光角度划分. 每拾伍度壹節氣,每年二十四節氣對應儒略曆日期幾乎固定,平均分佈於十二個月中.
月份 二十四節氣 角度
1月上旬 小寒 315℃
1月下旬 大寒 330℃
2月上旬 立春 345℃
2月下旬 雨水 0℃
3月上旬 惊蛰 15℃
3月下旬 春分 30℃
4月上旬 清明 45℃
4月下旬 谷雨 60℃
5月上旬 立夏 75℃
5月下旬 小满 90℃
6月上旬 芒种 105℃
6月下旬 夏至 120℃
7月上旬 小暑 135℃
7月下旬 大暑 150℃
8月上旬 立秋 165℃
8月下旬 处暑 180℃
9月上旬 白露 195℃
9月下旬 秋分 210℃
10月上旬 寒露 225℃
10月下旬 霜降 240℃
11月上旬 立冬 255℃
11月下旬 小雪 270℃
12月上旬 大雪 285℃
12月下旬 冬至 300℃
  1. 12生肖與12地支對應
地支
生肖

 

儒略曆

儒略曆
儒略曆

『儒略曆』由『羅馬』皇帝,贒明『儒略凱撒』頒發,同後蒞修正『格里曆』加入400年壹『閏』. 佢以『年』『月』『日』『時』『分』『秒』『禮拜』定義曆法.

  1. 『年』定為『地球』繞『太陽』轉壹圈.
  2. 『閏年』定每4年壹『閏』.『常年』365日『2月』 有『28日』, 『閏年』366日『2月』 有『29日』.
  壹年 2月
常年 365日 28日
閏年 366日 29日
  1. 『閏年』三規則
規則壹:年份係 4 倍數則係『閏年』
規則貳:年份係 100倍數,規則壹冇效,依然係『常年』
規則叁:年份係 400倍數,規則貳冇效,係『閏年』.
  1. 『月』定『壹年』『12月』.每月至多『31日』,與『月球』冇關.
月份 1 2 3 4 5 6 7 8 9 10 11 12
日數 31 28 31 30 31 30 31 31 30 31 30 31
  1. 『日』定為『地球』自轉壹圈.
  2. 『禮拜』有『7日』周而复始, 定『元年正月壹號』為『禮拜壹』.每 400 年循環一次.『肆禮拜』28日由『月盈』到『月虧』再到『月盈』.
元年正月 1號 2號 3號 4號 5號 6號 7號
禮拜 禮拜壹 禮拜貳 禮拜参 禮拜肆 禮拜伍 禮拜陸 禮拜日
  1. 『時』将每『1日』划分『24時』,與地球『經度』有關, 两千年前,地中海海員通過『睇星』計算『偉度』, 『偉度』越高接近两极,『偉度』越低接近赤道, 『經度』直至『鐘擺理論』出現,後發明『陀鐘』.『飛陀』每擺壹次稳定係壹秒.英國倫敦『格林威治天文台』『子午線』定『零度』, 每『拾伍度』『一壹粒』划分『時區』, 『1時區』即『1時』.
  2. 『分』将每『1時』划分『60分』
  3. 『秒』将每『1分』划分『60秒』

 

Android Studio丟失鍵盤映射『Missing keymap』

Android Studio丟失鍵盤映射『Missing keymap』
Android Studio丟失鍵盤映射『Missing keymap』

『Android Studio』冇拉拉丟失鍵盤映射『Missing keymap』『Cannot find keymap “Windows Proper Redo” 』.

重新設鍵盤映射.

  1. 撳『File』->『Settings』
  2. 撳『Keymap』->『Eclipse』
  3. 撳『Apply』
Missing keymap
Cannot find keymap “Windows Proper Redo”
Search for Windows Proper Redo Keymap plugin

 

DELL P2423-22寸16比10

DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
DELL P2423-22寸16比10
解析度『1920*1200』自訂頻率『75Hz』
解析度『1920*1200』自訂頻率『75Hz』
miniDisplayPort轉DisplayPort線
miniDisplayPort轉DisplayPort線
miniDisplayPort轉DisplayPort線
miniDisplayPort轉DisplayPort線

臺『SAMSUNG E2220W』22寸16比10,2012年2月出厰,玩左拾幾年,咁『』玩, 點知白撞兩贊壞人,右下角出現黑斑.

諗住買『DELL U3025E』30寸16比10貴得滯.『DELL P2423』22寸16比10特價.冇內置喇叭,冇『HDMI/DisplayPort』音頻輸出口,要插DELL-USB音箱. IPS屏『画面鮮豔』比『SAMSUNG E2220W』清𥇦.

NVIDIA Quadro K1200』得肆『DisplayPort』口. 買『miniDisplayPort轉DisplayPort線』線徑4.5mm.两頭冇磁環, 5mm卡扣磁環窿扣唔實.改為7mm卡扣磁環. 用『NVIDIA控制面板』,解析度『1920*1200』自訂頻率『75Hz』.

1.          『NVIDIA控制面板』

2.          撳『顯示』->『變更解析度』

3.          撳『自訂』

4.          撳『建立自訂解析度』

 

 

NVIDIA Quadro K1200

NVIDIA Quadro K1200
NVIDIA Quadro K1200
NVIDIA Quadro K1200
NVIDIA Quadro K1200
NVIDIA Quadro K1200
NVIDIA Quadro K1200
NVIDIA Quadro K1200
NVIDIA Quadro K1200
NVIDIA Quadro K1200-GPUZ
NVIDIA Quadro K1200-GPUZ

之前臺『Gigabyte-X570 AORUS MASTER』壹直未能投入使用, 决定啟用『x99 ITX-server』配『INTEL XEON E5-1630V4』. 『MSI GT710-1GB』連玩PHOTOSHOP都慢

『NVIDIA Quadro K1200』4GB顯存,配肆個『mini-display』, 配轉HDMI儀.用『GPU-Z』測比『RX550』慢.

臺達FLEX-500瓦火牛DPS-500AB-5B

臺達FLEX-500瓦火牛DPS-500AB-5B
臺達FLEX-500瓦火牛DPS-500AB-5B
臺達FLEX-500瓦火牛DPS-500AB-5B
臺達FLEX-500瓦火牛DPS-500AB-5B
臺達FLEX-500瓦火牛DPS-500AB-5B
臺達FLEX-500瓦火牛DPS-500AB-5B

XEON E5-2630LV3』最高功耗140瓦,『QUADRO K6000』最高功耗45瓦,未計WIFI同磁盤,接近200瓦功耗.『mineNAS-ITX機箱』送『同漢250瓦火牛』,冇主板8pin線,要靠4pin轉8pin線,長期高功率輸出,火牛頂唔順.

益衡FLEX-600瓦』太貴,買『臺達FLEX-500瓦』係其肆份壹.原配主板8pin線,同PCIE-8PIN線.

换火牛後著機唔識認『TOSHIBA XG3 1TB』同『Seagate XM1440 960Gb』,試過藍屏死機.反而『同漢250瓦火牛』係未試過藍屏死機.

 

Windows11-建立系統映像

Windows11-建立系統映像
Windows11-建立系統映像
Windows11-建立系統映像
Windows11-建立系統映像
Windows11-建立系統映像
Windows11-建立系統映像

自WindowsNT以蒞,Windows冇好似Win9x咁頻繁重装,但係Window11可能新出,自動更新後問題多多, 重装『Window11』 『android studio』浪費大量時間.

Windows11可備份『系統映像』,還原Windows11,好似用GHOST咁.備『磁碟機』比『C:』所用容量大.

  1. 撳『Win+E』檔案總管
  2. 撳『控制台』
  3. 撳『備份與還原(Windows 7)』
  4. 撳『建立系统映像』.選備份『硬碟』.
  5. 默認勺『EFI系統磁碟分割』『Window C: (系統) 』『Window修復環境 (系統) 』
  6. 撳『開始備份』等『系统映像』完成.

Windows11-剪取與繪圖

Windows11-剪取與繪圖
Windows11-剪取與繪圖

Windows11自更新後『剪取工具』神左,『全屏』得, 『視窗』冇返應.發現可將Windows10『剪取工具』移植過蒞Windows11.

首先复制Win10『SnippingTool.exe』『SnippingTool.exe.mui』, 位置如下: 『zh-TW』係默認語言.

C:\Windows\System32\SnippingTool.exe
C:\Windows\System32\zh-TW\SnippingTool.exe.mui

係Win11粘貼同壹位置

C:\Windows\System32\SnippingTool.exe
C:\Windows\System32\zh-TW\SnippingTool.exe.mui

再釘選『工作列』『開始』

AMD X570 SOCKET AM4 DEBUG 00

AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00
AMD X570 SOCKET AM4 DEBUG 00

冇啦啦换『Gigabyte-X570 AORUS MASTER』换左硬碟.唔著機『DEBUG』燈『00』.壹係CPU,唔係就火牛.

拆『AVC大霜塔』連CPU掹埋出蒞.重新插反粒U著機.睇蒞係『SOCKET AM4』夹唔死粒CPU.硅脂固化後『大霜塔』自重令CPU鬆脫.

『AM4防脫定位支架』壓死粒U, 即使硅脂黐死『大霜塔』都唔會連根撥起.兼容『AVC大霜塔』.

 

TOSHIBA THNSN81Q92CSE 1920GB貳

TOSHIBA THNSN81Q92CSE 1920GB貳
TOSHIBA THNSN81Q92CSE 1920GB貳
TOSHIBA THNSN81Q92CSE 1920GB貳
TOSHIBA THNSN81Q92CSE 1920GB貳
TOSHIBA THNSN81Q92CSE 1920GB貳
TOSHIBA THNSN81Q92CSE 1920GB貳
TOSHIBA THNSN81Q92CSE 1920GB貳
TOSHIBA THNSN81Q92CSE 1920GB貳

大量中古SSD磁碟機係網流出,再買『TOSHIBA-1.92TB-SSD』,實測『讀552MB/s』『寫518MB/s』.通電同樣接近伍年半,累積寫『526TB』,比上壹塊小寫『200TB』. 寫入量同樣驚入.唔知擺係NAS?

Windows11-英文『Windows安全性』

Windows11-英文『Windows安全性』
Windows11-英文『Windows安全性』

發現Windows11-『Windows安全性』變英文版, 『殺毒防護』『防火墙』『行事曆』變英文版.

事出『惯用語言』『Microsoft Store應用程式將會以此清單的第一個支援語言顯標』. 將『漢語』設成『第一個支援語言』即恢愎『漢語』.

1.          著『設定』程式
2.          撳『時間與語言』->『語言與地區』
3.          撳『惯用語言』
4.          將『漢語』置頂.

 

CHERRY櫻桃G80-3000白色青軸雨滴

CHERRY櫻桃G80-3000白色青軸雨滴
CHERRY櫻桃G80-3000白色青軸雨滴

幾年前買中古『CHERRY G80-3000』,有幾粒鍵神左,擺埋壹邊. 睇到中古白色青軸,成色九新.雨滴配色超鐘意.

寄蒞壹睇左上角红色非青色『CHERRY』logo,手感係青軸.右上角唔係圖標而係英文,可能係『CHERRY G80-3494』殼.

背面粘纸撕左.装『CHERRY Utility Software』認唔出,可能係『CHERRY G80-3000』都係認唔.

暈得壹陣陣.

 

 

3.5寸廿玖合壹讀卡機

3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機
3.5寸廿玖合壹讀卡機

買雜牌『讀卡機』, 『MS/TF/xD/SD/CF』伍插口,冇USB2.0浪費壹個USB-4PIN.

點知係非標USB-11pin,且條USB線唔够長,要買條USB-9pin延長線.上圖USB䋂線接反左,有两PIN直通係買雜牌主板enabled.接USB䋂線悬吉佢.

SAMSUNG 990 PRO 2TB

SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB
SAMSUNG 990 PRO 2TB CrystalDiskInfo
SAMSUNG 990 PRO 2TB CrystalDiskInfo
SAMSUNG 990 PRO 2TB CrystalDiskMark
SAMSUNG 990 PRO 2TB CrystalDiskMark

MLC時代過去,TLC粒, 三年保養, 每日全盤寫入壹次.『SAMSUNG-990 PRO 2TB』特價,標稱謮寫均超柒千兆.驚高熱而跌速,主板自帶散熱装甲熱過辣雞.特登買風扇散熱,高温達『50℃』,實測『讀6584MB』『寫6301MB』.

SSD
990 PRO 2TB 6584 MB/S 6301 MB/S
     

 

AVC 12CM大霜塔-叁風扇

AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇
AVC 12CM大霜塔-叁風扇

AVC 12CM大霜塔 Ryzen5-5600X
AVC 12CM大霜塔 Ryzen5-5600X

買『Ryzen5-5600X』用左『RYZEN-1500X』『幽靈散熱』,超頻驚唔力够鎮唔住, 『幽靈散熱』其實畀AVC代工.

『AVC-12CM大霜塔-叁風扇』價最低,附送『AM4/x99 socket』扣.叁風扇吹同壹方向形成風道,12CM風扇容易撞爛扇葉,0.23A低電流版,降低風速風嘈.

装龬罩保護扇葉.定位固定碼調開埋,拎鬆羅𢇁調開埋.

『Ryzen5-5600X』默認頻率3.7GHz控制係38℃, 壹舉超4.6GHz控制係58℃

Ryzen5-5600X 摄氏
3.7GHz 38℃
4.6GHz 58℃

 

AVC
MODEL DS12025R12UP024
DC 12V – 0.23A
HYDRAULIC BEARING
A7224DC

 

 

Seagate XM1440 960Gb-RAID1

Seagate XM1440 960Gb
Seagate XM1440 960Gb
Seagate XM1440 960Gb
Seagate XM1440 960Gb

Gigabyte X570 BIOS SATA
Gigabyte X570 BIOS SATA
Gigabyte X570 BIOS SATA
Gigabyte X570 BIOS SATA
Gigabyte X570 BIOS SATA
Gigabyte X570 BIOS SATA
RAIDXpert2
RAIDXpert2
AMD RAID WINDOWS11
AMD RAID WINDOWS11
AMD RAID WINDOWS11
AMD RAID WINDOWS11
Seagate XM1440 960Gb RAID0
Seagate XM1440 960Gb RAID0
Seagate XM1440 960Gb
Seagate XM1440 960Gb
Seagate XM1440 960Gb MVME
Seagate XM1440 960Gb MVME

之前Win11更新後頻䌓死機,將條『TOSHIBA XG3-1TB』擺係『x99i』装Win10,時過景遷,諗過買『Micron 7450PRO-960GB』TLC SSD『讀6800MB/S』『寫5600MB/S』略貴.

睇『Seagate XM1440-960Gb』MLC MMD『讀2500MB/S』『寫900MB/S』, 實測『讀2162』『寫576』略慢,買两條組raid1沉餘陣列,叠加讀速.

Gigabyte X570 AORUS MASTER』支持RAIDXpert2,AMD公司開發RAID技術,廿年前用两块『Western Digital-1TB』組RAID0,壹過保養即神,今次用两條XM1440組raid1因高熱而跌速,得『2280-m.2散熱』搭『2006蝸輪風扇』依然上70℃.

讀MB/S 寫MB/S
RAID0
RAID1 1420.0 584.5
MVME 2162.83 576.39

RAIDXpert2組raid1分伍步,要壹氣呵成.

1.      装m.2-SSD
2.      設置sata模式
3.      設置raid模式
4.      将win11時載入AMD RAID-9.3.0.158驅動.
5.      重构磁盤陣列.

装m.2-SSD

1.      斷電
2.      插入两條『Seagate XM1440-960Gb』

設置sata模式

1.      撳『DELETE鍵』登入BIOS.
2.      撳『Settings』->『IO Ports』->『SATA Configuration』
3.      『SATA Mode』設為『RAID』
4.      『NVMe RAID Mode』設為『Enabled』
5.      撳『Boot』
6.      『CSM Support』設為『Enabled』,禁CSM兼容支持
7.      撳F10儲存後重啟.

刪除RAID模式

1.      撳『Settings』->『IO Ports』->『RAIDXpert2 Configuration Utility』->『Array Management』.
2.      撳『Delete Array』
3.      『Confirm』設為『Enabled』
4.      15秒後撳『YES』, 刪除RAID.

設置raid模式

5.      撳『Settings』->『IO Ports』->『RAIDXpert2 Configuration Utility』->『Array Management』.
6.      『Select RAID Level』設為『RAID 1/RAID 0』
7.      撳『Select Physical Disks』
8.      『Physical Disk 0:1:0,NVMe Gen3 x4,960.1GB, Ready』設為『Enabled』
9.      『Physical Disk 1:1:0,NVMe Gen3 x4,960.1GB, Ready』設為『Enabled』
10.  撳『Apply Changes』
11.  撳『Create Array』
12.  撳F10儲存後重啟.

将win11時載入AMD RAID-9.3.0.158驅動.

1.      『AMD RAID-9.3.0.158』存入USB磁碟
2.      将win11載入驅動程式『X:\AMD RAID Preinstall Driver\Preinstall\NVMe_CC』

3.      cpu冇GPU載入『NVME_CC』,

4.      cpu有GPU載入『NVMe_DID』

5.      載入『AMD-RAID Bottom Device』
6.      載入『AMD-RAID Config Device』
7.      載入『AMD-RAID Controller[storport]』
8.      得翻單壹『磁碟機』,唔係刪raid1後重做.
9.      繼續将win11

重构磁盤陣列.

1.          raid1模式RAIDXpert2重构磁盤陣列.
2.

AMD RAID-9.3.0.158有两版本以CPU分NVME_DID/NVME_CC

Processor AMD-RAID
AMD 7th Generation A Series Desktop Processors NVME_CC
AMD Ryzen™ 1000 Series Desktop Processors NVME_CC
AMD Ryzen™ 2000 Series Desktop Processors NVME_CC
AMD Ryzen™ 2000 Series Desktop Processors with Radeon™ Graphics NVME_CC
AMD Ryzen™ 3000 Series Desktop Processors with Radeon™ Graphics NVMe_DID
AMD Ryzen™ 3000 Series Desktop Processors NVME_CC
AMD Ryzen™ 4000 Series Desktop Processors with Radeon™ Graphics NVMe_DID
AMD Ryzen™ 5000 Series Desktop Processors with Radeon™ Graphics NVMe_DID
AMD Ryzen™ 5000 Series Desktop Processors NVME_CC
AMD Ryzen™ 4000 Series Mobile Processors with Radeon™ Graphics NVMe_DID
AMD Ryzen™ 5000 Series Mobile Processors with Radeon™ Graphics NVMe_DID
1st Gen AMD Ryzen™ Threadripper™ Processors NVME_CC
2nd Gen AMD Ryzen™ Threadripper™ Processors NVMe_DID
3rd Gen AMD Ryzen™ Threadripper™ Processors NVMe_DID

 

GHERRY櫻桃MX3.0S青軸黑忍者G80-3870

GHERRY櫻桃MX3.0S青軸黑忍者G80-3870
GHERRY櫻桃MX3.0S青軸黑忍者G80-3870
GHERRY櫻桃MX3.0S青軸黑忍者G80-3870
GHERRY櫻桃MX3.0S青軸黑忍者G80-3870
GHERRY櫻桃MX3.0S青軸黑忍者G80-3870
GHERRY櫻桃MX3.0S青軸黑忍者G80-3870

上買『FILCO黑聖手』冇買黑忍者, 睇到『GHERRY-MX3.0S青軸黑忍者』有中古,

底座係鋁版折彎而成,冇倒角,冇塞窿,冇脚撑.

『Win/attr』鍵冇響應,以為神左,撳『Fn+F9』解鎖『Win/attr』.

109鍵比104鍵多左『GHERRY』『CALC』『Prev』『Play』『Next』伍鍵.

『ESC』鍵隔离多左粒『GHERRY』鍵,吾覚意撳錯鍵.

指南
GHERRY 撳住伍秒啟CHERRY-UtilSoft
FN+F1 静音
FN+F2 細聲
FN+F3 大聲
FN+F4  
FN+F5  
FN+F6  
FN+F7  
FN+F8  
FN+F9 激活WIN/ ATTR鍵
FN+F10 IE
FN+F11 等於WIN+E,啟用『檔䅁總管』
FN+F12  
Prev 焦點,上壹首
Play 焦點,play/stop
Next 焦點,下壹首

 

櫻桃官網
CHERRY UTILITY
指南書

 

MineNAS-ITX機箱装DVD-ROM

筆記本DVD-ROM
筆記本DVD-ROM
筆記本DVD-ROM
筆記本DVD-ROM
筆記本DVD-ROM
筆記本DVD-ROM
筆記本DVD-ROM
筆記本DVD-ROM
SLIMLINEATA轉SATA
SLIMLINEATA轉SATA
SLIMLINEATA轉SATA
SLIMLINEATA轉SATA
SLIMLINEATA轉SATA
SLIMLINEATA轉SATA

DVD係舊時係必备,随網速提升,DVD幾乎滅絕,當冇網冇USB𥔵碟時,依然要靠DVD-ROM装『驅動』『程式』『系统』,

mineNAS機箱頂預留筆記本DVD-ROM吉位.本蒞諗住装IBM-T60P『DVD』移過蒞,點知係IDE口,索性買SATA口, 係然需要『SLIMLINEATA轉SATA』.

但係未知㸃固定『DVD-ROM』.

Android studio冇法執行Clang-Tidy:事因稳吾到或冇法執行clazy-standalone.

Android studio冇法執行Clang-Tidy:事因稳吾到或冇法執行clazy-standalone
Android studio冇法執行Clang-Tidy:事因稳吾到或冇法執行clazy-standalone

『Android studio』冇法執行『Clang-Tidy』:事因稳吾到或冇法執行『clazy-standalone』.

Unable to execute Clang-Tidy: clazy-standalone is not found or cannot be executed

事因『Android Studio吾支持『clazy』

  1. 撳『File->Settings』
  2. 撳『Editor->Inspections->C/C++->Static Analysis Tools->』
  3. 禁用『Clazy』

Windows10啟用0xC004C003

Windows10啟用0xC004C003
Windows10啟用0xC004C003

臺『x570』装『Win11』後,未更新冇事,壹更新死機到崩崩聲.

唯有拆『TOSHIBA XG3 1TB』擺係『x99i,装翻『Win10』後,啟用報0xC004C003.報金鑰失效.之前装都啟用得.

𦲷發現係CMD模式手動啟用.

slmgr.vbs /upk

slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX

slmgr /skms zh.us.to

slmgr /ato

 

88星座-戈爾號座

88星座-戈爾號座
88星座-戈爾號座
星座 戈爾號/亞爾戈號/Argos
縮寫  
屬格 Argos
體量等級 『船帆座500』

『船尾座673』

『龍骨座494』

面積 平方度
正日  
聖衣 青銅聖衣
聖闘士  
招式  
起源  
記錄  
記錄 88星座之壹

『伊亞宋』稳蒞『亞爾戈斯』砌船, 稳皮立翁山『雲杉』做龍骨,船身硬正,經受風浪,輕巧飛快,取名『亞爾戈號』.

『戈爾號座』分柝為『船帆座』『船尾座』『龍骨座』

88星座-大熊座

88星座-大熊座
88星座-大熊座
星座 大熊座Ursa Major
形象 熊人
縮寫 UMa
屬格 Ursae Majoris
體量等級 3
面積 1280平方度
正日 5月16
聖衣 青銅聖衫
聖闘士
招式
起源 腓尼基時代
記錄 托勒密48星座之壹
記錄 88星座之壹

『狩獵女神』『阿蒂蜜絲』, 近身侍女『卡麗托斯』後生靚女, 畀咸濕佬『宙斯』中, 變身『阿蒂蜜絲』埋『卡麗托斯』身, 强姦至孕. 生埋蘇蝦『亞魯卡斯』.

『卡麗托斯』畀天后『希拉』落咒術,惨變黑熊. 蘇蝦『亞魯卡斯』畀仙女寧芙『凑大』.

『亞魯卡斯』長大做獵人,係樹撞到熊仁媽咪.媽咪睇見諗住上前攬住仔仔,『亞魯卡斯』睇見熊仁冲埋蒞,拉弓壹箭入魂.断氣前降頭毒解除,變翻仙女,仔乸相認.