2025年1月24日星期五

收據打印機

技能獲得!

連了 2 部收據打印機到網路上,其中一部連上了現金抽屜。今晚開始了艱苦的摸索。

先是想找一些別人的程式庫。沒想到很少人玩這個,用 swift 的尤少。幾個還是用 CocoaPod 發放,這太舊了,他媽的我的 Mac 上連 Ruby 都過時了。沒理由為了個 Pod 動到系統的 Ruby,這他媽太扯了。果斷放棄所有的 Pod。

這時心想直接控制打印機不會太難吧。果然查到 EPSON 製訂的 ESC/POS 指令表,全世界的收據打印機看來都會遵守。看去是用 TCP 連上去之後,往它傳送二進位指令就好了。但這網路似乎有點麻煩,又沒經驗。誰會想到寫 iOS app 還要玩 socket

然後找到一個 swift 寫的程序,作者是大陸人,註解居然打中文。這個連程式庫都不是。本想放棄,但一想,看他怎麼傳指令吧。好,居然是藍牙版的。這裡有一堆在藍牙上搜索並過濾打印機的邏輯。這對我沒有用。忽然想起在另一個庫看到連接LAN的碼。不如結合一下?

於是結合兩個程序,弄了個物件出來。成功了!直接傳送中文字都能出。繁體字呢?改用UTF8出了亂碼。好吧,這是國內產的打印機,用回國標碼好了。OK,它包括了繁體字宋體。能出!最怕的編碼問題都解決了。一維條碼也能印。

二維QR-CODE沒來得及搞,但應該沒問題。

另外也試了個把全部東西畫成一張圖輸出的,也是可以。但是它是腳先出來,而且筆畫不夠清晰,不是太理想。還是用前面那個。



2025年1月16日星期四

再婚的佔結婚者的 1/3

再婚的佔結婚者的 1/3

說明人們還是想要愛情的

但離婚率 ~50%

說明人們還是在犯錯.


2025年1月15日星期三

Read google firestore data to SwiftUI list view

This should be a common problem but it's hard to find correct and up-to-date reference. AI does not give anything good. Anyway here is the working way.

The key things are:
  1. Define a struct to model the data object we care about. 
  2. Then to have a class (not struct) subclassing ObservableObject with a @Published array of that model. The class has a method to read the data and decode it to the model and map the returned documents to the array.
  3. Sort it if necessary.
  4. Pass the array to a List view.
So here is:

2025年1月14日星期二

Use google sign in in Swift (iOS) with Firebase

The documentation on Google is fucking out of date. 

Finally we find here:

https://medium.com/@matteocuzzolin/google-sign-in-with-firebase-in-swiftui-app-c8dc7b7ed4f9

To keep a copy, below I copy the code part, which is the out-dated part of Google's guide.

2025年1月8日星期三

Javascript 字串夾入變數

javascript 原來可在字串夾入變數, 只要用反單引號表示字串即可. (`)


function anchor(href,text) 
{
return `<a href="${href}">${text}</a>`;
}

這就不用一堆瑣碎小字串和加號連接, 更別說單雙引號交替使用的麻煩.

2025年1月5日星期日

弱力和中微子

今日睇到:中微子不會與重力、強力和電磁力作用,所以當觀察到中微子撞擊電子,以及將電視軌跡改變,可以說明他與電子之間的作用是弱力。

這對我來講,十分反直覺。🙂

2024年12月23日星期一

半衰期

中學時期就奇怪,為何半衰期對於某樣元素是常數?為何減少一半的時間是固定的?這一半的數量並不一樣呀!最近終於有點明白 。

維基百科對於半衰期有如下說明:

數學上可以證明,只有一級反應的半衰期是恆定的數值,且知悉一個一級反應的半衰期便可以計算出該反應的所有動力學參數,所以人們通常最關心一級反應的半衰期。

詳細解釋可以參考維基百科。我理解係,衰變的速率,是與物質數量(或濃度)成正比的。所以半衰期就固定了。

至於為何核衰變有這種特性,可以參考本標籤下另一文章。

精選

收據打印機

技能獲得! 連了 2 部收據打印機到網路上,其中一部連上了現金抽屜。今晚開始了艱苦的摸索。 先是想找一些別人的程式庫。沒想到很少人玩這個,用 swift 的尤少。幾個還是用 CocoaPod 發放,這太舊了,他媽的我的 Mac 上連 Ruby 都過時了。沒理由為了個 Pod 動到...