香港人在新竹租房奇遇記(?)
最近因為在新竹科學園區找到了算是人生第一份正規的科技業工作,所以就準備打算直接搬家到新竹東區來方便上下班。然而想不到新竹的租房市場真的比想像中和資料收集中的還要坑人(特別是新手),所以就來寫一篇部落格來記錄一下。 事前資料收集 第一次做任何事情之前,最重要的就是做資料收集了。首先,在新竹科學園區附近找房子,有幾個重點: 591 上面的都是釣魚的Facebook 租屋群,騙子超多,下面再詳細解釋本地的不動產(門市),通常都只會登出超難租出或是貴價的,學長說那種風險很高不建議考慮掃街(建議的方法,但是很浪費時間和體力) 591 新竹租房問題 可能對於第一次來台灣的香港人,最早接觸到的租(買)房平台就是 591 了。可是在新竹的租房情況下,591 一般會出現釣魚問題。 簡單來說是 591 上面都只有仲介,放出來的圖片是真的,物件也應該是真的,但是你看到的時候通常都已經租出了。當你真的約房仲出來看的時候(就是你人已經去到新竹的時候),他才跟你說房子已經沒了,要不要看其他的? 如果你回答【好喔】,那你就踩進去這個陷阱了。他會把他手上有的租不出去的爛房子都給你看(網上也有人說他會假裝又有房子被租走了,來讓你趕快決定),然後很多人就因為「已經來了,不能空手而回」的想法而租到爛的物件。所以一般來說除非你真的沒辦法多來幾次,而且對房子的品質沒甚麼考慮的話,否則一般都不推薦這個方法。 Facebook 租屋群組 這又是另一個大坑,裡面就是房仲跟騙子的聚集地。其中一個最大的群組就是這個: 這個群組上主要會看到三類帖子,第一類是房仲,第二類是騙子,第三類是房仲或是騙子裝的房東自租。 房仲 房仲就比較簡單,你看到有浮水印的,多數都是房仲所推出來的房子。一般來說都會附上房仲的登記號碼(我猜政府應該是有管理制度,可以查詢到該房仲是不是合法經營的)。一般來說透過房仲找的話對方會多收你租金的 50% 作為中介費(一次性),所以如果你是很忙沒時間找而且不怕價格偏高的話,透過房仲來找房也不免是一個快捷省時間的方法。至於哪家房仲或是不動產公司比較好,這個你可以參考台灣 ptt 或是 dcard 上面的帖文。 浮水印例子(一) 浮水印例子(二) 網絡騙子 騙子的概念大概就是要來騙你訂金的,因為通常這類帖子都是由機械人或是詐騙集團發出來,背後大概有個模板所以就比較好分辨了。如果你看到類似這種的,有很大機率都是假的租房帖文。 關閉留言功能的 要求「優質房客」 房東自租 這個就要特別注意了。雖然說確實會有機會是有房間是由房東自己釋出,但是更多時候是房仲騙你去看房或是騙子的技巧。例如說這種的,資料看上去是真的可是把回應功能關掉的;或是寫著「可預訂」的,一般都是假的。 一般來說房東自租的物件真的超級少,你要到當地掃街才會有機會找到,所以在 FB 或是 ptt 上能找到的,即使真的是房東自租,你也不應該去看(價格不合理、環境差等而導致沒人租)。 本地的不動產 當你人已經去到新竹後,你可以選擇到附近的不動產門市看看。一般來說跟你在 FB 上看到的差不多,但是沒有了騙子與房東自租的部分,所以基本上貼在店外的就是 What you see is what you get 類房間。如果有看到有興趣、價錢 ok 的話直接進去說要看房就好了。然而,在科學園區工作了好幾年的學長卻建議不要找這種的,風險很高(我也不太懂),但是基於前人經驗之談,我在這次找房間的時候就直接跳過這個選項。 掃街 最後我決定直接掃街,從金山前到後每條巷子都走一趟。這邊的文化我覺得比較有趣的是,很多房子外面都貼著「套房出租」的 banner。 這種打電話過去有機會是房仲,也有可能是房東,這完全要看你運氣;有時候打電話過去會被告知已經全租出了,也有可能是同一個房仲在其他地方會有其他房間等等的。再加上這附近的人口超多流動率也有夠高,根據我的抽樣統計在我找房子的這個月這附近大約有 23 - 25 間空房出現(以及被租走),所以如果第一天找不到的話可以多待幾天再找,到時候可能就能找到了。 關於外國人租房的這回事 基本想如果你想在科學園附近租房的話,有兩樣東西是必要的 園區內公司之工作證件或報到通知單居留證(部分房東對於外國人特別抗拒,所以這個也很看運氣)或 台灣人當保證人 第一項這倒是不大問題(你要是沒在園區找到工作,搬過去幹麼?),問題是第 2 跟 3 項。在我找房的過程中,遇到最多的是當房東或房仲知道我是香港人的時候,他就馬上拒絕租給我(大部分都是直接說不考慮租給外國人)。 另外我也有找到另一間房東自租的房子,房東是高雄人,人滿好的,可是聊了很久之後打算租下去的時候才跟我說需要保證人才能簽約。單單是這幾點我就完全感受到台灣老一輩人排外的文化( 所以簡單來說,如果你是本地人的話房子已經夠難找了,如果是外地(國)人的話這個就更難了。就我找房的這兩次新竹之旅來說,大概 70 - 80% 都是需要保證人 或是 不租外國人的,所以如果你真的像我這樣要在新竹找房子,記得一定要預留至少 4 - 5 天時間。 我的找房經歷 由於我還沒有考到機車駕照,在只有單車跟步行的情況下,我選擇了金山街一帶的房子。那邊在當地人口中被叫做「新手村」,作為「新手」,住「新手村」就最合適不過了。我第一次去那邊的時候是搭高鐵,到新莊車站之後走路到附近的公車(巴士)站,再轉科學園紅線進去科學園;面試完之後再經科學園路走到金山街。 之後第二次去新竹的時候因為不用去面試,可以直接去金山街,所以這次我選擇搭火車(台鐵) 到新莊車站 再走路過去。雖然說有一部分路上次有走過,想著應該後面那段都是差不多,結果走過光復路一段之後全是上坡,走到快要體力不支( 後來第二天繼續去掃街的時候我選擇直接搭去竹中車站,這樣走路的距離在地圖上看短了不少 中間一開始看到有一片綠色我還以為是一個公園,怎知道去到之後才發現是一個山坡(結果又是上坡,果然金「山」街真的在山上的啊) 這山坡大概有 4 - 5 層樓高,而且還要是這種小徑的樓梯有夠難走 還好走完這一次之後我終於找到合適的房子並下了訂金(下次去的時候應該就會直接「的士 ~」) 結論 如果你找到了在新竹科學園區的工作,雖然很恭喜你,但是最難的部分才剛開始。之後還要考慮到住宿、交通(聽說在新竹的話必須要懂得騎車,雖然說 Ubike 看上去也滿多的)跟食的問題(聽說除了火鍋跟 M 記以外都沒好吃的),所以適應力的技能點也要點好點滿才進去喔(
Golang trie tree IP 轉國碼(Country Code)
最近因為有人 report 說 Zoraxy 的 GeoIP 功能不準,於是我在重新 review 這個 geoip database module 的時候發現:欸幹真的寫錯了欸!? 然後在花了一整個晚上 debug 之後,我終於找到正確的演算法和做法了。這裡為了省下後人在掘怎樣用 Golang 寫 IP 轉 Country Code 的 resolver,我這裡給大家一個快速上手的教學。 甚麼是 IP 轉 CC? IP 就是 IP 地址,CC 是 country code,有時稱為 ISO 國碼,例如說 HK TW US GB 之類的。IPv4 跟 v6 的地址區間通常會被 assign 到某一個國家的 ISP 上,而造成說只要知道 IP 地址,某程度上你可以知道那個 request 是從哪個國家出來的(先不要說 VPN 或是 ip spoofing 之類的部分的話)。可是由於每隔一段時間就會有 ISP 倒閉、收購或是重組之類的,所以 IP 轉 CC 的可靠度並非 100% 準確,這個時候我們就需要從一個可靠的來源來定期更新這一個 IP range 到 CC 的 mapping database 了。 這個 database 最出名的應該就是 maxmind 的 geoip database,人家都整理好所有數據到一個 database 檔案裡面,也提供 api 讓你可以快速查詢 cc,很多現代只會拉 library 的開發者通常就會直接選用它。然而,基於它的 license 問題,如果真接用它的方案的話會讓授權和 licensing 變得一團亂,所以基於多種考慮之下這個方案我們最終沒有使用,而是使用 Public domain 或 CC-0 的資料來源。 GeoIP Data Source 最後我們使用了來自 GeoFeed + Whois + ASN (CC-0)的資料來源: https://github.com/sapics/ip-location-db/tree/main/geolite2-country 問題是它的資料表是一個 csv 檔案,大概長這樣: 1.0.0.0,1.0.0.255,AU 1.0.1.0,1.0.3.255,CN 1.0.4.0,1.0.7.255,AU 1.0.8.0,1.0.15.255,CN 1.0.16.0,1.0.31.255,JP 1.0.32.0,1.0.63.255,CN 1.0.64.0,1.0.127.255,JP 1.0.128.0,1.0.255.255,TH 1.1.0.0,1.1.0.255,CN 1.1.1.0,1.1.1.255,AU 1.1.2.0,1.1.63.255,CN 1.1.64.0,1.1.127.255,JP .... 223.255.248.0,223.255.251.255,HK 223.255.252.0,223.255.253.255,CN 223.255.254.0,223.255.254.255,SG 223.255.255.0,223.255.255.255,AU 那假設我給你一個 ip 地址:A.B.C.D,你要怎樣把 country code 從 csv 裡面抓出來呢? 最直觀的答案:O(n) 當然如果會一點寫程式的人就會想到:那我把整個 csv loop 一次,看看哪一行的 start ip 跟 end ip 是包含我這個 ip 地址的就好了啦?這個的確是我們做給嵌入式裝置的做法(不過是為了省 memory),原理大概這樣: func isIPv4InRange(startIP, endIP, testIP string) (bool, error) { start := net.ParseIP(startIP) end := net.ParseIP(endIP) test := net.ParseIP(testIP) if start == nil || end == nil || test == nil {…
在 Zoraxy 加入 TLS SNI 功能
最近我在開發的 Zoraxy v3 在我開發 Zoraxy 之前我也不知道 https 證書這東西對於 reverse proxy 伺服器來說到底有多複雜。一開始的時候因為我都是用一個域名(domain name),所以 reverse proxy 裡面也是只需要處理一個主機名稱(host name)。而初代的 Zoraxy 則是直接用 TLS hello info 裡面的 server name 作為 certificate 的 key 來找到合適的 certificate 並回傳給客戶端,所以時間複雜度(time complexity)而言是 O(1) 的速度。換成程式碼大概長這樣: http.ListenAndServeTLS(":443", "server.crt", "server.key", nil) 到後來發現 virtual directory 帶來的麻煩後,Zoraxy v2 加入了 sub-domain 的支援。為了解決找 certificate 的問題, v2 的做法是讓使用者把每個 sub-domain 都 map 到一張 certificate 上面,所以結果就是同一個域名下會有很多張證書(例如說 a.example.com 會有 a.example.com 的證書、b.example.com 會有 b.example.com 的證書)。這樣設計的好處是一來找 certificate 的演算法比較簡單,二來我們可以根據 hello info 的 server name 進行也是 O(1) 時間複雜度的 certificate lookup,不用任何存取 file system 的 loop 便可以直接找到證書。 if fileExists(helloInfo.ServerName+".pem") && fileExists( helloInfo.ServerName+".key") { //Direct hit pubKey = helloInfo.ServerName+".pem" priKey = helloInfo.ServerName+".key" } 然後在 Zoraxy v2 用了這一年多之後就又出現問題了。coauthor 的其中一張證書裡面包含了幾個不同的 domain 跟 subdomain,也有使用者的證書是含 wildcard 的,也有是舊版用 Common Name 來定義(而不是 DNS entry)來標記 host name 的,結果就是一大堆 issue 就出現在 repo 上面。 SNI 的基本概念 SNI 的原理大概就是由伺服器端跟據 TLS Hello Info 的 Server Name 來自動回傳合適的 certificate 給 Client (這裡因為 Zoraxy 是一個 http proxy,那我就以瀏覽器為 client 的例子)。對於很直接的域名例如說 v1 跟 v2 裡面出現的,基本上就是只要把 certificate map 到一個 string 轉 certificate 的資料結構裡面就可以了。但是對於 v3 之後的複雜案例,則是需要一些更複雜的邏輯來處理。 相信來得我部落格的人不是工程師應該都是技術大佬,所以我就直接把 code 拿出來講好了。這裡是 Zoraxy v3 TLS 解釋器裡面最重要的 function func(m * Manager) CertMatchExists(serverName string) bool { for _, certCacheEntry: = range m.LoadedCerts { if certCacheEntry.Cert.VerifyHostname(serverName) == nil || certCacheEntry.Cert.Issuer.CommonName ==…
在不更改電路板 BOM 表下把 Macropad 變成 Numpad
話說幾個月之前,我設計並開源了一個四鍵的 macropad (快速鍵鍵盤)方案。電路板上使用 WCH 制的 CH552G 晶片,配合機械鍵與幾顆電阻電容就做成了一個超簡易的四鍵機械 macropad 後來在 hackaday 上分享後不知道為甚麼突然爆紅,收到很多留言,所以我就在想,說不定我可以用同一套零件的方案改用 grid layout 來做到數字鍵盤欸?所以我就來試試看了。 甚麼是 Grid Layout? 以 Arduino 的基本電路為例,通常要抓一個按鈕是不是被按下,一般都會對一個針腳進行讀取(e.g. digitalRead),但是在這樣的情況下,每一個按鈕就會需要用到一個 GPIO 針腳。如果我要做一個標準的 4 x 5 鍵數字鍵盤的話,我不就是需要用上 Arduino Mega 才行了嗎?所以這當然是不可行的。 但是如果你有留意到,外面很多 Arduino 按鈕的範例都是使用 Pull Low (下拉)和檢測針腳是不是 high (高電平)的方法來實現的。因此如果我們有辮法在需要讀到某個按鈕的時候的狀態的時候才對它提供高電平,而沒在讀取的時候提供低電平(即使按下也不會產生高電平狀態)的話,那樣我們就能用一只 GPIO 來選擇讀取哪個按鈕,另一只 GPIO 來讀取選擇了的按鈕來增加總讀取的按鈕數量。 於是就出現了 grid layout 跟 line scanning 的方法了。簡單來說就是對於一個 4 x 5 的 grid 而言,我們只需要控制 5 個針腳以選擇哪一行 (row),然後 4 個針腳來讀取哪一列 (column) 就好。以這樣的方法,原本會需要用到 20 個針腳的電路,現在用 4 + 5 = 9 個針腳就能讀完了。 可是,這樣會出現一個問題。在小量生產 PCBA 的情況下,每一顆零件和焊接費用都是滿貴的。而這個 layout 會讓 10K 電阻比原先的 BOM (四顆)多了一顆!? 不過解決方法也很簡單,只要把電路反過來,使用 pull HIGH + LOW activate 的設計(即是說按鈕按下的時候 MCU 是讀取到 LOW / 0 而不是 HIGH /1 ),那電路的設計就變成下面的樣子,把電阻搬到 INPUT line 上面,從而省下一顆電阻( 設計好了之後就是電路板設計了。這裡用的是 EasyEDA,根據上面的原理大致畫一畫之後電路板就出來了。 正面(預留了 numpad + macropad 兩者的插孔) 背面 組裝的部分也是沒甚麼特別的,先把 micro USB 和 CH552G 焊上去之後,再焊一些比較大的零部件,最後就是燒錄程序作測試。 背面電路板,原型機板本背面甚麼都沒有印 正面裝上 keycap 後的效果,由於是開發軟體用的原型機所以用上了最便宜的量產通用型鍵帽 測試用的 Arduino 寫的 Ch552 numpad firmware,需要先灌 CH55X Arduino 燒錄器 外殼設計與打印 由於這片電路板背面也有零件,因此沒辦法馬上使用,必須要先把外殼生出來才能安心放桌面上使用(不然把零件撞掉就麻煩了),這裡使用 Aprint Editor 簡單的為這台東西設計個外殼 因為不知道要傾斜角度多少會比較舒適,因此設計成可以拆卸的結構以方便測試 原型機成品 由於這是原型機,主要作為軟體開發和測試用,因此外殼甚麼的都是拿手邊剛好有的材料來印(黑色 PLA)。但是外型差不多就是這樣。 正面 底部,兩則的是防滑膠條;用戶可以在那個洞黏上金屬板以增加重量 Micro USB 與 firmware program 的按鈕有一個凹位方便開發者使用 後方的 IO 就只有 micro USB 口與兩顆 LED 最終(小)量(生)產的版本應該會好看很多,但是功能上這東西的確比我想像中的要好(這篇文章就是用這個鍵盤寫的),如果加上配重塊與專用鍵帽的話我猜真的可以取代現在我在用的數字鍵盤的樣子(?
AI 產圖與魔法 #淡淡杯
話說最近 FB 上出現了這麼一個有趣的比賽,但是作為技術系開發者,當然是要用最原始的 stable diffusion 來產,於是這就是作品: 魔法如下(Positive weight 跟 negative weight) ANIME GIRL, FEMININE,((PERFECT FACE)),((SEXY FACE)),((DETAILED PUPILS)).(ARTIST),ARTIST,ARTIST,(ARTIST). OIL PAINTING. ((NO BREAST)), SMIRK,LOOK AT VIEWER, (((WHITE HAIR))).(INTRICATE),long hair, asian, (loli), (HIGH DETAIL),SHARP, GREY EYES, 14, ((maid)), cherry blossom, ((sakura)), leaf, (flower), nature, ((blue sky)), white cloud, black cat ((nipple)), ((((ugly)))), (((duplicate))), ((morbid)), ((mutilated)), (((tranny))), (((trans))), (((trannsexual))), (hermaphrodite), [out of frame], extra fingers, mutated hands, ((poorly drawn hands)), ((poorly drawn face)), (((mutation))), (((deformed))), ((ugly)), blurry, ((bad anatomy)), (((bad proportions))), ((extra limbs)), cloned face, (((disfigured))). (((more than 2 nipples))). [[[adult]]], out of frame, ugly, extra limbs, (bad anatomy), gross proportions, (malformed limbs), ((missing arms)), ((missing legs)), (((extra arms))), (((extra legs))), mutated hands, (fused fingers), (too many fingers), (((long neck))), (((background))), ((((big breast)))), (((hand))) #淡如盃 技術細節 可能看到這裡的你會在想,到底 stable diffusion + pre-train model 跟外面的 midjourney 之類的差別在哪?雖然我也不清楚其他系統的做法,但是我猜的是他們也是基於一個 pre-train model 並加入一堆 preset 的 rule / theme 來讓它產出那模型的獨有風格。舉例說,上面的 negative weight 中,除了最後幾個(background)、(hand) 之類用作減少背景雜亂和手部生產錯誤的 negative weight 以外,其他基本上也就是固定的了。因此我猜可能其他的服務也是透過類似的方法來實現。 嘛當然,如果能避免直接出現手部(例如用 hands in pocket、hands out of frame 的 positive weight)的話那效果會更好。 手指與手套 加入黑色手套 (black glove) 不知道為甚麼,有時候好像也能改善手指數目和動作生成的問題(我猜可能只是看不見而已),以下是兩張例子: 色系與背景 特別強調背景的物品或色系看來有時候也會讓整體的繪圖質素有所提升(可能是因為通常背景畫得好的繪師,人物也畫得不錯?),例如說當我特別定義了 blue sky, white cloud, sunlight 等大自然的感覺的字眼之後,整個產出的氣氛也變得特別悠和 加入其他現代化的字眼如 future, glass wall, minimalist 之類的也可以做到類似效果 不過我覺得最特別的是加入了 (((hong kong))) 為背景所產出來的,不知道為甚麼有一種未來城市的感覺(?…
再見 Typora,你好 MarkText!
話說我自大學開始我就很喜歡用 Typora 來做筆記,但是最近它開始要收費了然後 Beta 版本的 Typora 連啟動都啟動不了。 嘛,軟體要收費我覺得是沒問題,但是像 Typora 這種一點預先通知都沒有,直到前幾天突然急用要啟動它的時候才彈出不能用的通知,真的超級沒良心。由於是急用所以我就先用一個開源的 keygen 來應付一下,連接在下面: https://github.com/taozhiyu/TyProAction 但是,由於按照它的條款,使用這 keygen 產出的授權只能夠使用 24 小時,所以在處理完手上的工作之後我就把用了快 3 年的 Typora 刪除掉正式找替代品了。在幾個小時後我找到了一個完美的代替開源方案: MarkText https://github.com/marktext/marktext 我覺得這個應該就不用多說了,就是一個很好用的開源 Markdown Editor 軟體。 它可以支援自定的字體(這裡我把它預設的換成了 Noto Sans HK Medium),也能夠透過 Ctrl + J 叫出旁邊的 title list。 至於怎樣把它設定到跟 Typora 的 hotkey 一樣,你可以到 File > Preference 那邊,在 Key Bindings 下找到以下功能並把 hotkey 改成 Ctrl + {號碼} 這樣你就可以直接無痛轉用到 MarkText 了!
便宜又好用的 SOP8 IC 清單
這裡收集了一些最近我發現的 SOP-8 IC,如果剛好你在找一些簡單的替代 IC 可能會在這裡找到喔! 型號用途備注 TC118S 單馬達驅動 IC (類 H 橋)1.8A MaxLM386音頻放大器TC4056A鋰電充電管理器,可替代 TP4056AO4496N-Channel MOSFET30V / 10AAO4435P-Channel MOSFET30V / 10ANE555DR就 555 啊,但是在 SOP8 包裝TP4333鋰電池充放同步升壓管理器 4.2V 1A XPT8871 LTK5128音頻功放5WM62429數字電位器(需接 MCU 使用)XL1509降壓3V / 5V/ 12V 版本CN5711LED 驅動(使用 PWM 調光暗)MOC213R2M光電耦合元件TP8485ERS-485 / RS-422 接口
神奇蹦蹦的 IC 與他們的用法
最近我在世界上其中一個最大的電子零件零售商的網站隨便看的時候,發現了一批不錯的 IC,於是順便把這些新發現記錄下來,之後需要用的時候就方便很多了! 基本中的基本 首先,最基本中的基本就是一些大家都在用,到處可見的 IC。由於這些 IC 的線路圖和模組設計教學整個網絡上都是,這裡就直接省略跳過詳細解釋它們的用途。通常在創客的 DIY 中最常見的就是: TP4056 - 單節 3.7V 鋰電池 1A 充電晶片XL6009 - 直流到直流升壓晶片LM2596(s) - 直流到直流降壓晶片 一些比較少見但是還是整個網絡上都是的晶片: MP1584(EN) - DC 可調降壓晶片 (小型 DIY 降壓用)D0505S-1W (D0505S-2W) - 5V DC 到 5V DC 直流隔離器(用於藍牙接收器與喇叭驅動電源隔離用)AMS1117-x (x 可以是 3.0, 3.3, 5.0 等) - 12V DC 到 x 的 LDO8205A + DW01 - 鋰電池保護板 很多時候 Maker 為了做帶電池的裝置就是用 TP4056 + XL6009 / MP1584 這樣配合著用,可是這樣做很浪費空間,所以我就開始找不少關於電源管理的方案,以下的應該就已經踏進沒甚麼人知道的領域了。 5V 0.8A 充放控制器 - HT4928(s) HT4928 是一片用起來很方便的鋰電池充電和升壓輸出的晶片。通常你很容易在那些便宜的單節 18650 行動充電器 (充電寶)裡面找到它。雖然用它來充手機是超級的慢,但是作為一些低功率裝置的供電(例如 Pi zero w)來說是不錯的選項。 5V 1A 充放控制器 - TP4333 如果 0.8A 差了一點點才夠,你可以考慮使用 TP4333。它也是一個用於行充的電源方案,但是用的外接零件會多幾個(R1,S1 跟 D5 如不需要手電筒功能可省略)。 5V 2A 充放控制器 - IP5306 / IP5307 這是一片大功率的鋰電充電和升壓晶片。能夠在 SOP8 package 裡做到 10W 的同時充放電,還帶 4 顆 LED 作電量顯示。(注:這東西發熱滿厲害的,記得底部的銅要鋪好鋪滿) 順帶一提,如果 IP5306 太貴,你可以試試看用替代用 IC FM5324 鎘鎳氫電池充電器 - CJC5122 / ASC0304B 這是一片 NiMH 充電器 IC,支援 1 到 4 顆的 NiMH 電池充電,預設是以 300mA 的充電速度來充。以下為 3.6V NiMH (3 顆串流)時的電路圖(R1 R2 及 R3 在不同配置下需要變更其電阻值) 單節鋰電池保護晶片 - XB8887A 通常的保護板需要使用兩塊晶片來做保護功能,可是這一片就能做到單片保證的功能。對於需要用到 18650 同時對空間要求很高的 project 很有用。 Charger 的部分可以配合 TP4056 晶片使用,這樣兩塊 SOP8 的晶片就能做到原本要一整片指甲大小的 PCB 的功能。 更小的單節鋰電池保護晶片 - XB5306A 如果 SOP8 還是太大,你可以考慮用這一片 XB5306A 。 使用 SOT23-6 包裝,真的打個噴嚏就不見了。電路圖跟上面的相近,Over current cutoff 電流量則降至 3A 使用 SOP8 Package 的升降壓晶片 - XL6007 對於一些對厚度很有要求的 project,要放進 XL6009 可能會有一點難度。這個時候就可以考慮使用 XL6007 了。這一片 SOP8 的晶片與 XL6009…
KIOXIA 32GB EXCERIA Micro SD 卡跑分
嗯,就大概這樣… 嘛,對於一張 36HKD 的卡來說不能要求太高吧(?)
如何在無中文輸入法的 Windows 上,不用上網不用滑鼠輸入中文字符
這是一個滿有趣的問題,因為一般人在輸入中文的時候一定會用中文輸入法,或是網上的輸入法甚至是手寫輸入,可是我突然想到這個問題: 如何在無中文輸入法的 Windows 上,不用上網不用滑鼠輸入中文字符? 然後結果是可以的,而且比想像中的簡單。如果你想開發一個中文的物理輸入法(例如用 Arduino 輸入之類的)也可以用以下的 key combination 來試試看 Windows 輸入 Unicode 的方法 https://support.microsoft.com/en-us/office/insert-ascii-or-unicode-latin-based-symbols-and-characters-d13f58d3-7bcb-44a7-a4d5-972ee12e50e0 Inserting Unicode characters To insert a Unicode character, type the character code, press ALT, and then press X. For example, to type a dollar symbol ($), type 0024, press ALT, and then press X. For more Unicode character codes, see Unicode character code charts by script. 簡單來說,就是先輸入 Unicode 編號,然後再按 Alt + X。 那 Unicode 編號是甚麼呢? 一般的中文 Unicode 編號可以在 https://unicode.org/charts/ 找到: CJK Unified Ideographs (Han) 例如說要輸入「一」字,你可以對照上面這份列表 編號是 4e00,所以只要在 word / wordpad 輸入 4e00 然後點 Alt + X 就會變成 「一」了 然後就是要讓鍵盤自動化這個過程,並把剛輸入的文字移動到一開始聚焦的畫面,而這個也一點都不難,只要: Win + R 打開執行器 輸入 "wordpad" 按 enter 執行 wordpad 輸入 Unicode 編號,例如 4e00 Alt + X 轉成中文字元 Ctrl + A 選擇所有字元 Ctrl + X 切下所有字元 Alt + F4 關閉 wordpad n 在「是否要儲存」選擇「否」 //這個時候視窗會自動聚焦到原本的視窗上 Ctrl + V 貼上 這樣完全不連網絡,只用鍵盤輸入中文字就成功了 你說知道這個有甚麼用?我也不知道 🤔🤔🤔