六四,樽酒,簋貳,用缶,納約自牖,終无咎。
四變,中爻離巽,巽木離中虛,樽之象也。坎,水酒之象也。中爻震竹,簋乃竹器,簋之象 也。缶,瓦器所以盛酒漿者。比卦坤土中虛,初變震,有離象,故曰缶。離卦鼓缶 ,此變離,故曰缶,《漢書》「擊缶而歌烏烏」。貳者副也,言樽酒而簋,即副之 也。言一樽之酒,二簋之食,樂用瓦缶,皆菲薄至約之物也。納約自牖者,自進于牖下,陳列此至約之物而納進之也。在墻曰牖,在屋曰囪。牖乃受明之處,變離, 牖之象也。此與遇主于巷同意,皆其坎陷艱難之時,故不由正道也。蓋樽酒簋二用缶,見無繁文之設 。納約曰自見,無儐介之儀。世故多艱,非但君擇臣,臣亦擇 君,所以進麥飯者不以為簡,而雪夜幸其家,以嫂呼臣妻者,不以為瀆也。修邊幅之公孫,述宜乎為井底蛙矣。
六四柔順得正,當國家險難之時,近九五剛中之君,剛柔相濟,其勢易合,故有簡約相見之象。占者如此,庶能共謀出險之計。始雖險陷,終得无咎矣。
《象》曰:樽酒簋貳,剛柔際也。
剛五柔四。際者相接際也。五思出險而下求 ,四思出險而上交。此其情易合,而禮薄亦可以自通也。
䷜︰習 坎,重 險也。孚, 信也。 信而能唯心習 教 事,故可出 坎。然而一己之 力微薄,更需要合 同志 同道合者,齊 行以濟重 險。當此之時也 ,樽酒簋貳,納約自牖,怡然 安特。
例假日。
晨起無聊寄,明兒 同樂會,亦悲亦是喜,喜大家鵬程萬里,悲今後或難再遇。須謹記,破 坎突 險,還是有賴志 友與道 朋。當懷念,同 學共 習之情誼。莫期望 ,倚靠 幸 運。《 》 文說︰
幸,所以驚人也。从大从 。一曰大聲也。凡幸之屬皆从幸。一曰讀若瓠。一曰俗語以盜不止爲幸,幸讀若籋。
運,迻徙也。从辵軍聲。
或應知, 幸,古義枷鎖也。得脫鐐銬,何其有幸! 運,本講遷軍。若能安泰!運何能不好?皆因不祥事耶!!??
西諺講︰幸運女神衷情準備好了的人,莫要與之擦身而過;當上帝來敲門時,記得開門。
《改不改??變不變!!》︰
一九六三年美國 NBC 電視台初次公演了由 Jay Stewart 和 Monty Hall 主持的『Let’s Make a Deal』成交約定遊戲。它有多種版本,典型的遊戲是︰
主持人向遊戲者展示了三扇門,其中一扇門之後是『樂透獎』,另外兩扇門之後是『安慰獎』。當然主持人事先就知道哪扇門背後有什麼獎品,遊戲過程分為三個階段︰
一、遊戲者先選擇一扇門,
二、主持人打開遊戲者未選之兩扇門中的某一扇安慰獎之門,
三.、主持人詢問著遊戲者是否仍堅持『原選之門』,還是願意改變選擇『另一扇未開的門』 ?這個『費疑猜』令人疲憊之 zonk 時刻已然到來!
人到底是該
『換,還是不換』的好呢??
一位『理性的』思考者也許會這樣論證︰
最初之時,每扇門後有『樂透獎』的機會都是 ,所以『選中』的機會是 ,『未選中』的機會是 。然而現在主持人打開了一扇沒有『樂透獎』的門,這個『資訊』將使得未選中之『僅存之門』的機會成了 。因此當然是『換的好』的了!
另一位『感性的』幸運者也許會這樣感覺︰
如果『會中』一選就中,如果『不會中』改選『也沒用』,所以還是維持原案『不換的好』的吧!
在『機會』的現象裡,人們因多次重複得到的某種『大數機率』,如果將之運用到『這一次』的選擇之時,那個『實際發生』的事實究竟是能不能『論斷』的呢?如果能,人們又為什麼會相信『莫非定律』是真的呢??
……
,只能悉聽尊便!?
# /boot/config.txt 檔案底部加入一行︰ dtoverlay=w1-gpio # 安裝派生三環境溫度感測器程式庫 sudo apt-get install python3-pip sudo pip-3.2 install w1thermsensor
#!/usr/bin/python3 # -*- coding: utf-8 -*- import math import operator import string import threading import RPi.GPIO as GPIO GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) 開 = 亮 = 低 = 0 關 = 滅 = 高 = 1 from time import sleep import tpg if tpg.__python__ == 3: operator.div = operator.truediv raw_input = input def make_op(op): return { '加' : operator.add, '減' : operator.sub, '乘' : operator.mul, '除' : operator.div, '剩' : operator.mod, '^' : lambda x,y:x**y, '**' : lambda x,y:x**y, '餘弦' : math.cos, '正弦' : math.sin, '切弦' : math.tan, 'acos': math.acos, 'asin': math.asin, 'atan': math.atan, '平方' : lambda x:x*x, '根號': math.sqrt, '正值' : abs, 'norm': lambda x,y:math.sqrt(x*x+y*y), }[op] 數碼賦值 = [(滅, 亮, 亮, 滅, 滅, 滅, 亮, 滅), (滅, 滅, 滅, 滅, 亮, 亮, 亮, 滅), (滅, 亮, 亮, 滅, 滅, 滅, 亮, 滅), (滅, 滅, 滅, 滅, 亮, 亮, 亮, 滅) ] 遲延 = 0.012 # 數碼管 四位數碼管位選一 = 17 四位數碼管位選二 = 27 四位數碼管位選三 = 22 四位數碼管位選四 = 10 LEDA = 21 LEDB = 16 LEDC = 19 LEDD = 6 LEDE = 5 LEDF = 20 LEDG = 26 LEDH = 13 # 初始態 GPIO.setup(四位數碼管位選一, GPIO.OUT, initial=關) GPIO.setup(四位數碼管位選二, GPIO.OUT, initial=關) GPIO.setup(四位數碼管位選三, GPIO.OUT, initial=關) GPIO.setup(四位數碼管位選四, GPIO.OUT, initial=關) GPIO.setup(LEDA, GPIO.OUT, initial=滅) GPIO.setup(LEDB, GPIO.OUT, initial=滅) GPIO.setup(LEDC, GPIO.OUT, initial=滅) GPIO.setup(LEDD, GPIO.OUT, initial=滅) GPIO.setup(LEDE, GPIO.OUT, initial=滅) GPIO.setup(LEDF, GPIO.OUT, initial=滅) GPIO.setup(LEDG, GPIO.OUT, initial=滅) GPIO.setup(LEDH, GPIO.OUT, initial=滅) def 數碼管執行緒(): global 數碼賦值 global 遲延 數碼管 = [LEDA, LEDB, LEDC, LEDD, LEDE, LEDF, LEDG, LEDH] while True : for 單元 in range(0,4): if 單元 == 0 : GPIO.output(四位數碼管位選一, 開) GPIO.output(數碼管, 數碼賦值[單元]) sleep(0.002) GPIO.output(四位數碼管位選一, 關) if 單元 == 1 : GPIO.output(四位數碼管位選二, 開) GPIO.output(數碼管, 數碼賦值[單元]) sleep(0.002) GPIO.output(四位數碼管位選二, 關) if 單元 == 2 : GPIO.output(四位數碼管位選三, 開) GPIO.output(數碼管, 數碼賦值[單元]) sleep(0.002) GPIO.output(四位數碼管位選三, 關) if 單元 == 3 : GPIO.output(四位數碼管位選四, 開) GPIO.output(數碼管, 數碼賦值[單元]) sleep(0.002) GPIO.output(四位數碼管位選四, 關) sleep(遲延) 數碼緒 = threading.Thread(name="數碼", target=數碼管執行緒) 數碼緒.daemon = True 數碼緒.start() 數碼管輸出字典 = { "0" : (亮, 亮, 亮, 亮, 亮, 亮, 滅, 滅) , "1" : (滅, 亮, 亮, 滅, 滅, 滅, 滅, 滅) , "2" : (亮, 亮, 滅, 亮, 亮, 滅, 亮, 滅) , "3" : (亮, 亮, 亮, 亮, 滅, 滅, 亮, 滅) , "4" : (滅, 亮, 亮, 滅, 滅, 亮, 亮, 滅) , "5" : (亮, 滅, 亮, 亮, 滅, 亮, 亮, 滅) , "6" : (亮, 滅, 亮, 亮, 亮, 亮, 亮, 滅) , "7" : (亮, 亮, 亮, 滅, 滅, 滅, 滅, 滅) , "8" : (亮, 亮, 亮, 亮, 亮, 亮, 亮, 滅) , "9" : (亮, 亮, 亮, 亮, 滅, 亮, 亮, 滅) , } def 輸出數碼管(數據) : global 數碼賦值 global 數碼管輸出字典 if 數據 > 999.9 : return "數值超過 999.9" else: 字符串 = "%05.1f" %數據 for 單元 in range(0,5): if 單元 == 0 : 數碼賦值[單元] = 數碼管輸出字典[字符串[單元]] elif 單元 == 1 : 數碼賦值[單元] = 數碼管輸出字典[字符串[單元]] elif 單元 == 2 : 暫列 = list(數碼管輸出字典[字符串[單元]]) 暫列[7] = 亮 數碼賦值[單元] = tuple(暫列) elif 單元 == 3 : continue else: 數碼賦值[單元 - 1] = 數碼管輸出字典[字符串[單元]] return "完成" GPIO.setup(11, GPIO.OUT, initial=GPIO.HIGH) 小哨子 = GPIO.PWM(11, 130.8) def 啟動蜂鳴器(): 小哨子.start(100) return "蜂鳴器已啟動" def 響聲控制(頻率): 小哨子.ChangeFrequency(頻率) 小哨子.start(50) return 頻率 def 噤聲控制(頻率): 小哨子.ChangeFrequency(頻率) 小哨子.start(100) return "噤聲" def 控制蜂鳴器(op): return { '響聲' : 響聲控制, '禁音' : 噤聲控制, }[op] def 輸入符碼(針碼): return GPIO.input(針碼) def 輸出符碼(針碼, 賦值): GPIO.output(針碼, 賦值) return "輸出" + str(賦值) def 出入定義(針碼, 入出): if 入出 == "出" : GPIO.setup(針碼, GPIO.OUT, initial = GPIO.HIGH) else: GPIO.setup(針碼, GPIO.IN, pull_up_down = GPIO.PUD_UP) return "定義完成" def 出針定義(針碼): GPIO.setup(針碼, GPIO.OUT, initial = GPIO.HIGH) return "定義輸出完成" def 入針定義(針碼): GPIO.setup(針碼, GPIO.IN, pull_up_down = GPIO.PUD_UP) return "定義輸入完成" def 入出針定義(op): return { '入針' : 入針定義, '出針' : 出針定義, }[op] import subprocess 重複次數 = 1 def 紅外線輸出(字碼): global 重複次數 subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', 字碼,"--count=" +str(重複次數) ]) return "已送出" 傳送重複 = 3 訊息編碼表 = {"0" : "KEY_0", "1" : "KEY_1", "2" : "KEY_2", "3" : "KEY_3", "4" : "KEY_4", "5" : "KEY_5", "6" : "KEY_6", "7" : "KEY_7", "8" : "KEY_8", "9" : "KEY_9", } 訊息解碼表 = {"0" : "0", "1" : "1", "2" : "2", "3" : "3", "4" : "4", "5" : "5", "6" : "6", "7" : "7", "8" : "8", "9" : "9", "SETUP" : "S", "ENTER" : "-", "BACK" : "E", } def 紅外線發訊(四位數): global 傳送重複 訊息串 = str(四位數) if len(訊息串) != 4 : return "訊息必須四位數" subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', "KEY_SETUP","--count=" +str(傳送重複) ]) for 字碼 in 訊息串 : subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', 訊息編碼表[字碼],"--count=" +str(傳送重複) ]) subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', "KEY_ENTER","--count=" +str(傳送重複) ]) subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', "KEY_BACK","--count=" +str(傳送重複) ]) return "已發訊" import lirc sockid = lirc.init("TuxIOme", blocking=False) def 紅外線輸入(): return lirc.nextcode() def 紅外線收訊(): 空碼 = 0 狀態 = 0 字串 = "" while True: 字碼 = 紅外線輸入() if 字碼 == [] : 空碼 += 1 if 空碼 < 10 : continue else: 狀態 = 1 break 空碼 = 0 字串 = 字串 + 訊息解碼表[字碼[0]] if 狀態 == 1 : return 字串 else: return "錯誤" def 讀取系統溫度(): t = subprocess.check_output(['vcgencmd', 'measure_temp']) T = t.decode('utf-8') Tb = T.find('=') Te = T.find("'") return float(T[Tb + 1 : Te]) from w1thermsensor import W1ThermSensor sensor = W1ThermSensor() def 讀取環境溫度(): return sensor.get_temperature() import random class 實習機板(tpg.Parser, dict): r""" 此為實習基板入出針語言 TuxIOme 0.1,自 Calc.py 擴充而來。由於使用中文之故, 不能使用預設的 NamedGroupLexer 。 文法定義如下 :: set lexer = CacheLexer separator space '\s+' ; token 指數運算 '\^|\*\*' 入出針定義 token 聲音控制 '(響聲|禁音)\b' make_op token 乘除運算 '[乘|除|剩]' make_op token 函數二 '(norm)\b' float token integer '\d+' e=self.記憶() | VarId/v '=' Expr/e e=出入定義(p, '出') # | '定義' Expr/p '入' e=op(p) | '讀入' Expr/p e=輸出符碼(p, 0) | '寫出' Expr/p '關' e=啟動蜂鳴器() | "蜂鳴器" 聲音控制/op Expr/p e = 輸出數碼管(p) | "IRTX" VarId/s e = 紅外線輸入() | "系統溫度" self["周遭溫度"] = e = 讀取環境溫度() | "發訊" Expr/p e = 紅外線收訊() ; Var/ -> VarId/v ; Expr/e -> Term/e ( 加減運算/op Term/t t=op(t,f) )* ; Fact/f -> 加減運算/op Fact/f f=op(f,e) )? ; Atom/a -> real/a | integer/a | Function/a | Var/a | '' | Random/a ; Function/y -> 函數一/f '' y = f(x1,x2) ; Random/x -> "四位亂數" sudo ./TuxIOme Calc (TPG example) :系統溫度 50.8 :環境溫度 36.875 :變元 CPU溫度 = 50.8 一藍 = 5 七黃 = 7 三藍 = 13 二藍 = 6 五綠 = 0 八紅 = 8 六綠 = 1 周遭溫度 = 36.875 四藍 = 19 按鍵一 = 23 按鍵二 = 18 撥碼一 = 24 撥碼二 = 25 :顯示 CPU溫度 完成 :顯示 周遭溫度 完成 :四位亂數 6398 :四位亂數 5724 :發訊 5200 已發訊 :收訊 S55--22--0-E :發訊 1314 已發訊 :收訊 S11--33--11--4-EE :
,以為臨別珍重
系統溫度
環境溫度