Photo by Cloris Ying on Unsplash

This article contains spoilers.

A lot of non-Asian viewers could not understand what happened at the end of Pixar’s animated short film “Bao” (2018). Some people already tried to explain on the Internet, but recently I still see people said how they laughed and got confused when the mother eat her son (an Asian dumpling magically alive for totally no reason).

I’d like to offer some short opinion here.

The little “Bao” in the short film is, of course, a metaphor of the mother’s real son. The mother gave birth to him, took care of him, and tried (too hard)…


Photo by Harrison Broadbent on Unsplash

在這個系列中,我們要來看看 Raspberry Pi Pico — — 或者應該說 RP2040 微控制器 — — 的一個特殊功能,也就是 PIO(Programmed I/O,程式化輸出入)。

在許多開發板上,會有事先針對特定通訊方式設定好的 GPIO 腳位,例如 I2C、SPI、UART… 但假如你希望增加這類腳位的數量,甚至使用一些更特殊的通訊協定如 I2S、VGA、DPI,可能就只能用軟體模擬,讓主控制器來扮演腳位控制者了,而這就是所謂的「bit banging」。然而每個協定的通訊速度不同,這麼做也會占用處理器資源,並不是很有效率。

為解決這個問題,RP2040 提供了兩組 PIO,相當於獨立的迷你處理器,可以用稱為 PIO Assembler(pioasm)的組合語言來設定腳位行為。

可程式化的腳位並非新概念:這在 FPGA 和 CPLD 上已經存在,卻是第一次應用在這種平價、親民的開發板產品上。而透過 MicroPython,你不需要什麼很困難的技術就能存取 PIO。只是在我寫這篇之前,官方文件的解釋一直很有限,網路上又很難找到夠充分的討論和介紹,所以卯起來做了點研究。實際上來說,本篇就是這段研究的成果記錄 …


Photo by Pawel Czerwinski on Unsplash

2020 年 4 月 11 日,英國數學家、身為普林斯頓大學教職員一員的約翰‧何頓‧康威(John Horton Conway)在紐澤西因新冠肺炎引起的併發症逝世,享年 82 歲。相較於慘烈的疫情新聞,這則消息在台灣沒有引起多少關注。

很久以前在自學程式時,偶然聽說了「康威生命遊戲」(Conway’s Game of Life),從此對它深感著迷,多年來還替它寫了好幾種不同程式語言的版本。但就和康威本人一樣,當我和其他寫程式的人談起它時,大部分的人根本沒聽過這是什麼。

生命遊戲(不是桌上遊戲那個生命遊戲)堪稱康威最出名的成就之一,是他在 1970 年發明的一個零和遊戲,在平面棋盤裡進行。其規則如下:

  1. Any live cell with fewer than two live neighbour …

Photo by Syed Ali on Unsplash

這是一篇很短的文,其實也不算創新,但最近剛好能派上用場。

簡而言之,在台灣於 2021 年 5 月爆發大規模社區感染後,有許多在家等待就醫的人因「快樂缺氧」(happy hypoxia)猝逝,也就是因肺部受感染後血氧濃度降低、但患者本身沒有明顯感覺,導致情況惡化就來不及了。也因為如此,人們開始搶購血氧機,甚至有醫生傳授若搶不到血氧機時該怎麼檢查是否隱性缺氧。

剛好我手上有個別人給的 MAX30100 脈搏血氧感測模組,趕快做了一個 DIY 血氧機,裝在一個名片盒裡面給我爸媽用。


Photo by Annie Spratt on Unsplash

我第一次(自)學程式是小六畢業的暑假。小學時已經有電腦課,只上一些簡單的作業系統跟文書、繪圖操作。當時不知在哪看到說 MS-DOS 5.0 有附一個可以寫程式的東西叫 QBasic.exe,結果就去書店找了一本 Quick Basic 的中文電腦書來學,並在那個暑假寫了我的頭幾支程式。

(QB 是所謂的 Structured BASIC,它不再需要在每一行前面寫行號,功能也更強大。此外 QBasic 其實又是 Quick Basic 的簡化版,拿掉了編譯可執行檔的功能。)

在那個台灣還沒有 STEM 教育、資訊素養若有可無的年代,寫程式的概念跟最佳實踐方式沒人教,就只能自己胡亂摸索。但也因為這樣,國中開始自學 Visual Basic 4(高中時是用 6.0),到大學時雖然沒有考進資訊科技科 …


Photo by Vishnu Mohanan on Unsplash

This is a simple article, originating from one of my experiments for a failed company project proposal.

Tensorflow/Keras is (still) a popular AI package, and AutoKeras (a open AutoML or automated machine learning Python package) lets you train a neural network model in TF without having to set any parameters. It requires Tensorflow 2, which in turn needs 64-bit Python runtime. However, official Raspberry Pi OS is still using 32-bit kernels.

It’s not that hard to find 64-bit OS, but there are so many dependencies that are never fully documented. I managed to find the solution: here I’ll show you…


Photo by Jorge Ramirez on Unsplash

(上圖不是 ESP8266,不過就將就吧。)

前言

Raspberry Pi Pico 的問世,使更多人開始重新注意到 MicroPython 這個嵌入式系統用的 Python 語言。儘管 MicroPython 在執行速度上不及 C++ 等語言,但它有很多語言與功能上的便利優點。

ESP8266 和 IoT 自造專案已經不是新玩意,然而你仍然能用它們來做些低成本的物聯網裝置。若你對 MicroPython 與周邊裝置有一定了解,還可以隨自己的需求改造。不過,一般人對這會不會有興趣呢?

本文要展示的,就是筆者至目前為止最喜歡的三個 ESP8266 IoT 專案。你可以在完全不懂程式與硬體的前提下,照著以下步驟做出你自己的裝置,放在自己家裡或辦公室使用。也因為如此,這篇不會太深入講語言和硬體知識,但你能在書 …


昨天拿到了我訂的 RPi Pico,多花了一點銀子,但新玩意總得親自動手玩才能有點概念。

2021 年 1 月下旬,樹莓派基金會出人意表地發表了 Raspberry Pi Pico — — 一款小型、便宜的微控制器,搭載自家研發的 RP2040(雙核 Cortex M0+,最高時脈 133 HMz)。而且不僅如此:MicroPython 的開發者 Damien George 已經替它設計了專屬的韌體,可直接從樹莓派單板電腦 OS 內附的 Thonny IDE 連線,連官方書籍都準備好了。此外,包括 Arduino、Adafruit、Sparkfun 和 Pimoroni 都會用 RP2040 生產自己的開發板。

(Pico 只裝有一個類比溫度感應器。寫這篇文時,Arduino 的版本 Ardu …


Photo by Alex Motoc on Unsplash

ROT13 (“rotate by 13 places”) is a simple letter substitution cipher, a special case of “Caesar cipher” and was once popular on Internet forums.

The rule is very simple: you replace each letters with the 13th letter behind them. If the range is over the last letter z, just loop back and continue to count from letter a. Since there are 26 letters in English, apply ROT13 twice (or 4, 6, 8 times…) will return the original text:

ROT13("Python") -> "Clguba"
ROT13("Clguba") -> "Python"

Although The Zen of Python said “There should be one — and preferably only one —…


Photo by Corinne Kutz on Unsplash

如果你在學機器學習,應該會聽過「邏輯斯迴歸」。邏輯斯迴歸是個好用的分類器演算法,而想在 scikit-learn 中匯入、訓練和使用它也相當簡單。然而,邏輯斯迴歸是如何分類資料的,就需要一點技巧來解釋了。

很多人會從數學式子切入,但對如在下我這種數學不好的人來說,抽象的方程式永遠非常難懂。而有些書或網站會附上邏輯斯函數的圖表,但它們通常跟後面的程式範例沒有直接關係(此外這些書或網站經常也只是抄襲其他人的範例)。最後,已嚴然成為 Python 機器學習代名詞的 scikit-learn 儘管在其網站上有很多視覺化範例,但它們大多極其複雜,要拿來應用實在是有難度。

而這就是這篇文章的出發點:記錄我對於 scikit-learn 幾種模型之視覺化的簡單研究成果。將機器學習模型視覺化,對於教學其實有很大的 …

Alan Wang

I just like to write weird stuff that have very little to do with my profession. My other blog is https://krantasblog.blogspot.com.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store