2014/2015 年的 Smart Home & IoT 裝置?

昨天的「What's that touchscreen in my room? (laplab.me)」這篇頗有趣的,原文「What's that touchscreen in my room?」是在租屋處看到牆上有一片平板,研究這到底是什麼的文章:

作者在一包文件裡找到手冊以後 (應該是屋主當初直接拿給他的一包文件?),知道這是 NetThings 的設備 (看起來已經是歷史了,這邊留個 LinkedIn 上的連結...):

然後連了半天發現連不上,到公共區域發現他還有一台主機要打開,但因為沒有保險絲,所以沒通電:

在裝了保險絲開機之後就是黑這台機器的過程...?

在各種嘗試中得知,port scan 過程發現有 tcf-agent 可以直接對檔案系統操作,首先是試著撈出 root 加密過的密碼來 john 但不順利,後來是發現可以修改 /etc/shadowroot 密碼清空,並且修改 /etc/ssh/sshd_config,就順利連上了這台機器...

這是一台 ARM9 的機器,有大約 118MB 的記憶體,而且 CPU 可以直接跑 Java bytecode (Jazelle)。

另外這台平板是 Android 5 的系統,透過 webview 從主機上拉狀態出來。

然後裡面有不少 (以現在來看) 古董:

Along with the Pulse app, there is the second part of the application. A Node.js app reads CSV files populated with energy usage data and displays them to the user in the web UI. It uses Node.js 0.10.26, Express.js 4.13.3 and Socket.io 1.3.6.

是個 2014/2015 年左右的產品...

WFH 在美國的比重,以及舊金山辦公室的空屋問題

先講結論:COVID-19 前美國的 WFH (Work from home,或是 Remote work) 的比率大約在 5% 上下徘徊,在疫情開始暴增超過 60%,但到現在後疫情時期已經是常態性高過 25% 了。

報導是從「'Return to Office' declared dead」這邊看到的,裡面提到了今年九月發的 paper (可以免費下載):「The Evolution of Work from Home」。

paper 的作者之一 Nick Bloom 在 X (Twitter) 上提到了目前看起來不同來源的結果是一致的:

先從他在九月時發的 paper 抓這張圖出來,裡面提到的 Census Household Pulse Survey 看起來是美國政府的「Measuring Household Experiences during the Coronavirus Pandemic」這份資料,時間是從疫情開始爆發後蒐集的 (2020/04/23):

裡面有兩張圖,先看大的圖,可以看到 2000 年以後 WFH 是有緩慢上升,但也就是 5% 上下。而在疫情開始直接飆升,然後開始降回來。

接下來看小的圖,這是疫情開始的資料,疫情一開始非常高,到 60%+,但可以看到的確從 2021 年開始美國的 WFH 就平穩下來了,大約在 25%~35% 這邊,而且已經平緩下來了。

另外一篇要提的是從房地產的角度看的,報導是「San Francisco now at 35% office vacancy rate, highest ever recorded: data」這篇,提到舊金山辦公室的空房率達到歷史新高的 35%。

在加州的官網上有比較舊的資料 (資料來源不同,所以主要是看趨勢),上面目前最新的資料可以看到 2023 年三月辦公室的空房率是 26% (這份資料裡面有提到最新資料大約晚一季到兩季):「San Francisco Office Space Vacancy」。

算是不同方向的指標交叉看,看起來算一致。

在家裡放光纖的故事 (又是 25Gbps 的 Internet...)

在「Wiring my home with Fiber」這邊看到為了善用 25Gbps 的 internet 頻寬,所以決定在裡直接穿管放光纖...

翻了一下之前寫的「25Gbps 的家用 Internet」,媽的居然是不同人,但都是 Init7 的服務沒錯...

在開頭的地方他先放了架構圖,看起來是多組線路備援的架構?

用的是單模光纖,然後穿現有的牆內管:

然後看起來是自己做插座,而不是直接接設備:

家裡只放了 Cat6 到各房間,可以在短距離裡面跑 10Gbps,或是百米的 2.5Gbps/5Gbps,以這幾年網路升級的速度應該是夠用...

Ubuntu 下面搞 Multi-home 架構

家裡的 internet 架構大概是這樣 (省略過其他裝置):

一邊是 HiNet 的線路直接接中華的數據機 (modem),這段是用 PPPoE 撥接;另一邊是第四台網路 (北都),另外上面寫的 Switch 應該是 IP 分享器 (一台 ASUS 的機子,刷 DD-WRT),作圖的時候寫錯了...

最後是電腦的部份,我的桌機是跑 Ubuntu,用兩張個不同的實體線路 (界面分別是中華的 enp4s0 與第四台的 enp6s0f0) 接到了這兩個不同的網段上面。

打算跑 source routing 的架構來善用兩邊的頻寬,想法上面大概是這樣拆解:

  1. 機器本身有個 192.168.3.x 的 static ip。
  2. 針對 source ip 是 192.168.3.x 的封包,預設會往 192.168.3.254 這台分享器丟,然後 NAT 出去。
  3. Squid 在本機上跑一個 proxy server,指定 source ip 是 192.168.3.x

有了這樣的架構,我就可以在瀏覽器上面就透過 SwitchyOmega 這類的套件,指定某些網段要走第四台的頻寬出去了。

另外可以指定 http proxy 的服務也可以透過這個方法往第四台的線路連出去。

其中第二點需要把 source ip 是 192.168.3.x 的封包丟到 192.168.3.254 這段需要一些設定,首先是需要設定一個獨立的 routing table,我是在 /etc/iproute2/rt_tables 裡面放:

2       second

然後因為我是透過 NetworkManager 在管理網路界面的,我希望在 enp6s0f0 啟動時自動設定這個 source routing 邏輯,所以我在 /etc/NetworkManager/dispatcher.d/99-enp6s0f0 這邊寫了:

#!/bin/bash

interface=$1
event=$2

if [[ "$interface" == "enp6s0f0" && "$event" == "up" ]]; then
    ip route add default via 192.168.3.254 table second
    ip rule add from 192.168.3.0/24 table second
fi

然後要記得把這個檔案 chmod 755 讓他可以執行。

接著是 Squid 的設定,在 /etc/squid/squid.conf 裡面這樣寫:

#
http_access allow all
#
access_log /var/log/squid/access.log squid
cache deny all
cache_dir null /tmp
cache_log /dev/null
cache_mem 8 MB
dns_v4_first on
forwarded_for off
http_port 3128
tcp_outgoing_address 192.168.3.x

其中最後的 192.168.3.x 換成自己的固定 IP address。這邊因為 traffic 基本上都是 HTTPS 了,也不需要開 cache,就這樣設定...

這邊比較特別的是 dns_v4_first 的設計,這個是讓 Squid 儘量用 IPv4 的位置連線。這是因為北都的網路沒有提供 IPv6 位置,所以如果網站的 DNS 如果有 IPv6 位置的話就會從 HiNet 這邊的 IPv6 出去了...

另外 ping 與 MTR 之類的工具不會動在這這樣的架構下是正常的,因為這些工具會自己組合 raw packet 丟,不是透過 Linux 的 network stack 處理,所以不會被我們指定的 ip rule 解析。網路上看起來是有方法可以 mitigate,但我就先放著了...

這樣看起來還算堪用,先這樣用一陣子看看... 先前是在 Raspberry Pi 上面跑個 proxy server 導流量,但會受限於 Raspberry Pi 的硬體限制,效能上面就普普通通,現在直接用桌機拼看看...

家裡搞小機櫃的文章

Hacker News 的首頁上看到有趣的文章,在講怎麼搞個小機櫃弄起來專業一點的玩:「Home Lab Beginners guide – Hardware」,對應的評論在「Building a Home Lab Beginners Guide (haydenjames.io)」這邊可以看到。

照這個搞法好像可以塞兩三台 1U server,不過搞的大太就會像 Brad Fitzpatrick 搞的那樣,直接上 42U rack 了 XDDD

這好像也算是某種浪漫?

SETI@home 計畫將在月底停止

看到「SETI@home Search for Alien Life Project Shuts Down After 21 Years」這個消息,SETI@home 計畫將在這個月月底停止:

SETI@home hibernation
On March 31, the volunteer computing part of SETI@home will stop distributing work and will go into hibernation.

大學的時候跑得很開心,後來就沒什麼在玩了... 看起來是有些成果,所以決定休息了。

加州打算強制規定新房子都要有太陽能...

加州打算直接從法律上規定從 2020 年開始的新房子都要有太陽能:「California set to become first US state requiring solar panels on new homes」。

The state’s Energy Commission is due to vote next week on new energy standards that would require virtually all new homes to be constructed with solar panels from 2020.

如果通過的話,從 20% 直接變成強制性的 100%:

Currently around 20 per cent of single-family homes are constructed with solar capacity built in, but if the new standards are approved as expected this proportion will rise sharply.

下個禮拜回來看看消息好了,這應該是蠻指標性的事情... 無論是在經濟上還是在環保題材上。

用鋁箔紙改善無線網路死角 XDDD

看到用鋁箔紙改善無線網路死角的文章 XDDD:「How I amplified my home's Wi-Fi with aluminum foil.」。完成品長這個樣子:

然後從下面的第一張變第二張 XDDD:

然後這幾天他又把鋁箔紙變大,但是好像沒有更好 XDDD

I didn't see any difference in terms of coverage, it's still the same.

是個家裡太大的煩惱 XDDD

Homebrew 蒐集到的安裝資訊

在「Homebrew Analytics Install On Request Events — Homebrew」這邊,Homebrew 利用了傳回來的資訊算出 2016/07/14 到 2017/07/14 的安裝套件次數,列出前一千名。(我是把他關掉,因為隱私問題不想要傳出去... 參考「Homebrew 會將安裝資訊送到 Google Analytics 上」這篇。)

比較有趣的是第一名的 node 超級多,比第二名加第三名的 git + wget 還多...

拿來翻一翻還 ok,順便看一下大家用什麼...