每日一問:為什麼新年定在 1/1?

Photo by Aaditya Arora from Pexels 這個標題也許令人誤解,1/1 本來就是一年的開始啊?當然,但為什麼我們會選擇一個冬天的日子作為一年的開始,而不是某個春天、夏天、秋天的日子呢?陽曆以地球的公轉為依循,地球每繞太陽一圈就是一年,一年之中所謂「特別」的日子,應該會是春分、夏至、秋分、冬至等等,但 1/1 卻不是什麼特別的日子,甚至以季節來說,我們通常會認為 12、1、2 月是冬天,3 月開始才是春天,為什麼會將新年定在一個季節的「中間」呢? 下一個猜想:也許是由於某種歐洲世界的歷史因素?直覺會想到的可能是「耶穌誕生」,畢竟西元的紀年「名義上」就是以耶穌誕生為始(儘管這與史實有些差距),但這也有矛盾之處:我們之所以能說「耶穌於 12/25 日出生」,就證明了陽曆是早於耶穌誕生的,否則就應該會是「我們將耶穌誕生之日定為 1/1」。 如果把陽曆跟農曆做比較,就會發現這個巧合更加神奇,農曆是以月亮的公轉作為依循,一年的長度與陽曆不盡相同,然而農曆的「新年」和陽曆定在差不多的時間,都是在冬天的中間,但是農曆的新年是有天文意義的,新年之時月亮是朔月,但一年有 12 個月,為什麼不定在其他的月份?不同文化將「新年」這個概念定在差不多的時候,這背後有什麼關聯嗎? 我想到的可能性是農業社會的生活型態,在較高緯度的農業社會中,冬天是休耕期,一年到頭的辛勤的工作,在冬天時應當能稍微喘息,而歷經了作物一年的生長與收割,在這個時候特別會有「結束」之感,而實務上來說,若要「慶祝新年」,選擇在冬天的中間進行也很合理,因為工作量比較少,慶祝完後就可以迎接春天的到來,因此自然而然成為了北半球新年的「熱門選擇」。由此推廣,南半球的文明是否也會選擇當地冬天轉春天的時候作為新年呢? 知道為什麼新年要定在冬天了,但是為什麼恰好定在現在的 1/1,而不是早一天或晚一天呢?這聽起來或許強詞奪理,但我們要意識到,人類社會要取得廣泛的共識是很難的,通常能夠廣泛被認可的制度都來自某些自然觀察,例如十進制來自於人類有十根手指、一週七天來自地球上可以肉眼觀察到的「特殊星球」有七顆,否則就是出於歷史因素,並由強勢文化擴散到世界各地。 現代公曆的歷史 根據維基百科,我們現今所使用的公曆——格里曆,是在公元 1582 年由義大利醫生阿洛伊修斯.里利烏斯改良儒略曆所制定、並由教皇所頒布的。其改良內容主要是對閏年規則的修正,沒有改變新年的時間點,因此再往上追,儒略曆是羅馬的羅馬共和國獨裁官儒略.凱撒採納希臘數學家索西琴尼所計算出的曆法,在那之前羅馬的曆法相當的混亂,與太陽的公轉週期已經相差甚遠,而 1/1 則是定在凱撒執政官上任之日。 我們發現這跟先前的推測相當接近,1/1 的制定是出自歷史因素,且格里曆其實是相當晚期才被全世界採用,日本於 1873 年採用格里曆,而中國則是在中華民國於 1912 年成立後開始採用格里曆,在這個時機做出改變,明顯是來自歐洲強勢文化的影響,這也驗證了我們先前的猜想。 現代的不同曆法 其實在現代,也有國家是採取不同的曆法,例如伊朗所使用的伊朗曆,就是以春分作為一年開始的太陽曆(取自天文觀察);或是許多伊斯蘭國家所使用的伊斯蘭曆,跟中國傳統的農曆一樣是以月亮的公轉作為依循,並將新月定為一個月的開始(農曆是朔)。 除此之外,現代也有對曆法改革的提議,對紀年的改革有學者塞薩爾.埃米利安尼提出的人類紀年(又稱全新世紀年),將現有的年加上 10000 作為新的紀年,例如 2021 就會變成 12021,選擇這個時間點,是因為人類紀年的元年是最後一次冰河期的結束,也是新石器時代的開端。此外這種曆法包含了 0 年,讓數軸變得完整。 對紀月的改革有企業家喬治.伊士曼所推行的國際固定曆,將每個月定為 4 個星期 28 天,一年 13 個月,這樣只有 364 天,因此再添加最後一天「年日」作為一年的結束,年日不屬於星期中的任何一天,國際固定曆的特色是日期將始終落在一週中的同一天,且非常易於計算(除以 7 的餘數)。 這些提案雖然到現在仍處於討論階段,尚未獲得共識,但打破了我過去對曆法「本來就是這樣」的想法。曆法是一種制度,是由人所制定的,過去曾經歷多次的曆法改革,現今也有不同國家使用著不同的曆法,這些都告訴我們即使像曆法這般有如文化根基的制度,也是可以被改變的。如果是你,會期待什麼樣的曆法呢? 參考資料 曆法 格里曆 儒略曆 伊朗曆 伊斯蘭曆 國際固定曆 人類紀年(全新世紀年)

January 23, 2021 · 1 分鐘 · wancat

越是討厭越該努力

這個學期學校課程增加了許多,有一些課程一上就連上四堂,又是單方面的聽課,實在沉不住氣,不是睡覺就是滑手機。在五專待了一年後,我感染了大學的委靡之氣,竟抱持著「教授不會當人」的僥倖心態,想要得過且過,過了大半學期卻對課程內容幾乎沒有了解。就連到了期中考,也只在前一天晚上看看投影片,勉強考了個及格分數,心中卻還十分得意,毫無悔意。 直至今日,我缺交一項本該在上週就該完成的作業,時間緊迫,只好拿同學的檔案改名字。這本來也沒什麼,畢竟這項作業寫出來大家應該也都會差不多,然而從小到大,我最引以為恥的就是抄作業了,如今自己卻落入這般田地。交完作業後,我開始反思自己究竟這半個學期是怎麼度過的?上課不聽、睡覺滑手機,考試前才急急忙忙的抱佛腳。覺得上這門課很浪費時間,然而卻未善加利用上課時間學習,若能在上課時間就將課程內容學好,不花額外的課餘時間去唸書,不才是對我最有利的嗎? 於是在今天的課程,我將手機關機,拿出筆記本認真作筆記,下課向老師請教,搞清楚每個不懂的地方,實習時認真動腦思考,快速的做出成品,提早下課。我花了更少的時間,學到了更多的內容,而且心中感到充實。除了學習今天教的內容,我也利用空檔時間,去回顧之前自己沒認真看的地方,節省未來需要額外花時間讀的時間。 利用上課的時間把上課的內容學好,將課餘時間留給自己真正想做的事,這個我從國中至今變奉行的道理,為什麼在上了五專後忘記了呢?認為自己已清楚志向,便不願投入心力去學看似無關的學科;不滿於教學模式,卻也不願去跟教授討論;課餘時間忙於音樂,便認為有藉口在上課偷懶。我忘卻了過去自己所相信的信念:所有的學習都是增加自己的視野。既然非學不可,那就將它一次學好;既然要學,那就學到你能從中獲得超過其本身的價值。我警惕自己,未來不要再落入這樣得過且過的心態,認真的看待每一次學習。越是討厭它,越該努力將它學好!

December 4, 2020 · 1 分鐘 · wancat

2020 赤弦獎比賽心得

今天我與班上同學 Annie 參加北科的民歌比賽——赤弦獎,我們報名高中演唱組,Annie 擔任主唱,我則是吉他手。我原先想報的其實是創作組,然而創作組只有大專才有,專一到專三只能報高中組,後來 Annie 就找我去參加高中演唱組。 比賽結果是沒有入圍,我想主因還是表演本身不夠特別,我吉他基本上就只是看 91 譜,然後壓出最簡單的和弦,刷法上的變化也不多,也沒有什麼指彈的旋律,呈現出來的很普通。在比賽的前一週社團的學長姐給了我一些建議,調整了副歌的刷法,但可能還是難以改變整體缺乏特色的問題。評審指出了幾個可以改進的地方,包括刷法的變化、層次不足,還有我與 Annie 的搭配需要更緊密。我們這次比賽沒有指導老師,練習過程也缺乏檢討,因此常常找不到進步的方向, 我自今年暑假開始學吉他,至今快四個月,然而我自滿於當前的狀態,自從開學以來毫無長進,我想主要原因可能是我疏於練別人的歌,因此技巧停留在基礎的程度,甚至基礎也不如——封閉和弦都還沒辦法按得很穩定。這學期加入社團,將時間投入去學習新的樂器,電吉他、貝斯、爵士鼓,然而每一樣都沒有充分的時間練習,學習的效果跟暑假時每天練吉他兩個小時相比實在相差太多了。之所以學那麼多樂器,倒不是想樣樣精通,而是為了編曲要對各種樂器有點概念,如此而已。 我想以我的目標——成為創作歌手——而言,學好木吉他應該會是最優先的事項,畢竟初期創作會多以自彈自唱為主,能不能編出豐富的吉他會大大的影響到作品的好壞。因此接下來我需要加強吉他的訓練,要多練習別人的作品,並有系統的從中學習到技巧,將其應用於自己的作品,可能也會再去上一對一的吉他課,比起社團的大班課,一對一還是最能夠進步。但我想先自己努力看看,去請教社團的學長,等到自己已經無法更進一步了,再去上課。 希望這次比賽可以作為一個契機,激勵我在吉他上更加努力。

November 22, 2020 · 1 分鐘 · wancat

專案介紹:排列組合計算機

近來數學課在教排列組合,排列組合不簡單,很難考慮周全,因此我設計了一個排列組合計算機,根據設定條件窮舉出所有可能,並一一列出。 排列組合計算機 GitHub 與使用教學 我覺得這個工具對於學習排列組合蠻有幫助的,當然工具沒辦法教你排列組合,但是可以通過觀察結果來促進思考,或找到沒考慮周全的地方,以及驗證題目是否正確。 其實用電腦窮舉不難,只是排列組合的題目變化多,難以用一個程式解出所有題目,但我發現其中基本上都可以分成兩個部份:窮舉與篩選,先窮舉出所有結果,再將結果進行篩選。窮舉基本上大同小異,就是排列/組合、重複/不重複,每個題目不一樣的主要是篩選的部份,因此我設計讓使用者自己在網頁上用 JavaScript 寫篩選器,這樣各種複雜的條件都能做出來,這裡是運用 JavaScript 的 eval() 函式,可以將一個字串轉成 JavaScript 語句,這感覺超不安全的,但既然不是在伺服器端,應該不會有什麼資安疑慮,程式若是失控,請使用者自行負責。 整個專案就是一個靜態網頁,託管在 GitHub Page,程式在瀏覽器端執行運算,整個專案相當簡短,全部 JavaScript 不過一百多行。由於排列組合的結果數上升得很快,我有做一個簡易的保護機制,確保總運算量不會超過十億,在這之前我多次搞到 RAM 吃光,整台電腦當機(但主因是 VSCode 和 TabNine 吃太多記憶體)。 使用上由於要寫 JavaScript,或許會有些門檻,但畢竟只是對陣列數值做加總、判斷,我在 GitHub 上有提供一些範例,應該參考一下就會寫了。 如果這個工具對你有幫助,希望你幫我拍手或是到 GitHub 上給個星星!

June 17, 2020 · 1 分鐘 · wancat

Raspberry Pi 安裝 WordPress 教學

WordPress 是一套自由的網站系統,可以安裝在自己的伺服器,以下是我在 Raspberry Pi 上安裝 WordPress 的記錄。 請先安裝好 MariaDB / MySQL、PHP 7.3 以上、Caddy。 到官網複製壓縮檔連結(我偏好 tar.gz) cd Downloads wget https://wordpress.org/latest.tar.gz sudo tar -zxvf latest.tar.gz -C /var/www sudo chown -R www-data:www-data /var/www/wordpress 接著建立 MySQL 使用者: sudo mysql > create database wordpress; > create user 'wordpress'@'localhost' identified by 'password'; > grant all privileges on wordpress . * to 'wordpress'@'localhost'; > flush privileges; 接下來將域名綁定到 Web Server,這邊我們使用 Caddy yourhostname.com { root /var/www/wordpress gzip fastcgi / /var/run/php/php7....

May 17, 2020 · 1 分鐘 · wancat

近視眼鏡是近視惡化的元兇——霧視法介紹

你有近視嗎?你近視多深呢?在現代社會我們幾乎不可能避免近距離用眼,從書本、電腦到手機,我們一天幾乎所有時刻眼睛都是聚焦在近處。但你有想過,究竟為什麼人類會「近視」?又為什麼近視會一直不斷加重呢? 事實上導致你近視不斷加重的原因,其實就是你的近視眼鏡! 近視是什麼 近視是遠方影像無法成像在視網膜上的現象,分為真性近視跟假性近視,假性近視是控制水晶體的睫狀肌長時間用力,無法放鬆所導致的「暫時性」近視,可透過散瞳劑、望遠凝視等方式放鬆;然而真性近視則是眼軸拉長、視網膜後退,是沒有辦法回復的永久性殘疾。 你有想過為什麼人會近視嗎?我認為,近視其實是一種身體的進化。 眼睛之所以能夠看遠又看近,是因為我們的水晶體是一個可調整焦距的凸透鏡,透過睫狀肌去控制水晶體的厚度,要看遠就放鬆,讓水晶體變平,要看近則是用力,讓水晶體變厚。 我們在看近的時候,睫狀肌需要用較大的力氣去拉動水晶體,這對眼睛是一件吃力的事。因為我們長時間都在看近處,身體為了減輕負擔,於是將眼軸拉長,但代價就是看不清楚遠處。 這個說法沒有科學研究證明,但一個可以輔佐的證據是近視好發於成長期,過了成長期之後之後,沒有近視的人就不太會近視了,就可以解釋為身體在成長期為了適應環境而近視。 眼鏡的原理 同時討論眼鏡和眼睛相當複雜,因此我將運用虛像的概念來聚焦重點,不同的眼鏡會讓物體產生不同大小遠近的虛像,而我們眼睛對焦的是虛像而非物體本身。 近視眼鏡——也就是凹透鏡——會將物體的虛像拉近、縮小。因為距離縮短了,所以看不清楚遠的人就看得清楚了,但不是因為近視被「矯正」了,而是因為虛像變近了。 遠視眼鏡——也就是凸透鏡——會將物體的虛像拉遠、放大。因為距離拉長了,所以看不清楚近的人就能夠看得清楚了。 近視眼鏡如何加重近視 根據前面的討論,我們有兩個結論:一、眼睛對焦的是虛像,二、近視眼鏡將虛像距離拉近。由此可知,當我們戴著近視眼鏡看著近距離的物體,它的虛像比我們實際上的距離還要來得更近,相當於你用更近的距離在看它。 我們因為看不清楚遠的而配戴眼鏡,卻又因為不拿下眼鏡而長時間看著更近的地方,陷入近視不斷加重的惡性循環。最終導致我們連桌面都看不清楚,非依賴眼鏡不可。 所以我們必須正確認知近視眼鏡的用途:讓我們看清楚遠處,只要不是在看遠的時候,就把它取下,只有如此才能跳脫近視不斷加深的惡性循環。 用「霧視法」預防近視 還記得我們剛才提到凸透鏡是將物體的虛像拉遠,因此我們可以透過在看近時配戴凸透鏡,拉長虛像的距離來避免近視。 雖然都是戴眼鏡,但這個作法只需要在長時間看近時戴眼鏡,平常不需要配戴,因此就不會有戴眼鏡時運動、吃湯麵不方便的問題。凸透鏡,也就是遠視眼鏡和老花眼鏡。霧視法所使用的凸透鏡,我們通常稱之為閱讀鏡,但本質上是相同的。 霧視法分為「近霧視法」與「遠霧視法」,以鏡片的度數和配戴情境區分。近霧視法配戴度數低的凸透鏡,在看近時配戴,用於減輕看近時的負擔;遠霧視法則是配戴度數高的凸透鏡,戴上後視野裡的所有物體都會是模糊的,效果相當於高強度的望遠凝視,要每天配戴二十分鐘來放鬆睫狀肌。 遠霧視法由於配戴期間難以做其他事,較難堅持;近霧視法則是在看近時戴上眼鏡即可,不會花額外精神,因此較容易做到。 我從一年前開始做近霧視法,效果十分顯著,以前長時間近距離用眼後,都會出現假性近視,看不清楚遠方。但如果有戴著閱讀鏡,在拿下眼鏡後,都不會有任何假性近視的症狀。 由於凸透鏡的成像原理,物體只有在焦距內才會是「虛像」,因此閱讀鏡只能看清楚焦距內的物體,因此挑選合適的焦距就會是個重要的工作,如果焦距太短,則什麼都看不清楚,焦距太長,保護效果就會打折扣。 下表為鏡片度數與遠點距離的對應表,遠點距離就是可以清楚的最遠距離,超過遠點的影像就會變得模糊。資料來源:預防近視網 度數 遠點距離(cm) 平光 無限遠 25 400 50 200 75 150 100 100 125 87.5 150 75 175 62.5 200 50 300 33.3 400 25 而各近視度數的患者也可以參照下表去選擇適合的閱讀鏡度數。資料來源:預防近視網 度數 建議配鏡度數 平光 ~ 150 +100 ~ +300 200 +50 ~ +200 250 不戴鏡 ~ -150 300 -100 ~ -200 350 -150 ~ -250 400 -200 ~ -300 450 -250 ~ -350 500 -300 ~ -400 550 -350 ~ -450 600 -400 ~ -500 結語 從二十世紀起,就已經有許多眼科醫師開始提倡霧視法,但由於大眾缺乏對近視的正確觀念,總是拖到嚴重才就醫,又只重視「馬上看得清楚就好」,短視近利,選擇配戴近視眼鏡,不了解近視眼鏡對眼睛造成的危害,而不願意接受霧視法這種預防性療法,最終導致許多人陷入一輩子戴眼鏡、近視不斷加重的深淵,這一切原本都是可以避免的。...

April 26, 2020 · 1 分鐘 · wancat

專案介紹:Fever Pass 體溫登記系統

Fever Pass 是我們團隊 Linchpins 在 2020 年初,為了因應新型冠狀病毒開發的一套體溫登記系統,用於協助各級機關、學校自主登記體溫。 GitHub Repository。可以在我們的 demo 試用本系統,用以下帳號登入: 導師 紀體溫 帳號 t101 密碼 10100 學生 梁體溫 帳號 1081201 密碼 10141 護理師 護理師 帳號 nurse 密碼 nurse 歡迎體驗 demo 的各種功能。demo 每日早上八點會幫所有帳號隨機登記體溫。 Fever Pass 是一個自由且開放原始碼的專案,使用 Go 語言撰寫,以網頁界面進行操作。可以讓機構中的成員自主登記體溫,也可由管理員登記他人體溫。 目前 Fever Pass 被臺中一中使用,自主健康管理-體溫登錄全面電腦化-『Fever Pass體溫記錄系統』 Fever Pass 有清晰的統計頁面,可以看到每日的登記情況,快速找出發燒與未登記的人員。 Fever Pass 有豐富的權限設計,分為體溫管理權限和帳號管理權限,以這些為基礎組成許多預設的身份組,用來滿足各式各樣的管理需求。 職稱 身份 體溫記錄權限 帳號管理權限 重置密碼 admin 管理員 全校 全校 全校 護理師 教職員 全校 個人 個人 教職員 教職員 個人 個人 個人 導師 教職員 班級 班級 班級 衛生股長 學生 班級 班級 班級 學生 學生 個人 個人 個人 歡迎有需要的機關或學校自行安裝使用,希望這個系統能夠幫助更多人度過這次疫情,也歡迎志願者貢獻此專案。若需要代為安裝或是佈署,請來信 linchpins-team@protonmail....

March 29, 2020 · 1 分鐘 · wancat

elementary OS 啟用 System Tray

elementary OS 是一個好看、易用的 Linux 發行版,然而它有一個缺點:系統狀態欄(system tray)無法顯示其他應用程式的 icon,這導致像輸入法、Discord 等有使用 system tray 的程式無法使用完整功能。最討厭的莫過於 HP 印表機驅動 HPLIP,每次開機就跳出來說 no system tray deteched,非常煩人。 原因是 elementary OS 基本上不希望其他應用程式去使用 system tray,並且停止支援 Ayatana Indicator API,做出相同決定的還有 GNOME,參考 Status Icons and GNOME。 安裝 Ayatana Indicator sudo add-apt-repository ppa:yunnxx/elementary sudo apt update sudo apt install indicator-application wingpanel-indicator-ayatana 編輯 /etc/xdg/autostart/indicator-application.desktop 加入 Pantheon OnlyShowIn=Unity;GNOME;Pantheon; 接下來重新啟動 X 或是重開機 sudo service lightdm restart # or reboot 完成後 elementary 就可以顯示各個應用程式的圖示了! References How to display system tray icons in elementary OS Juno?...

February 12, 2020 · 1 分鐘 · wancat