2016年1月29日金曜日

Emacsから無線LANを制御

 MacBook AirでEmacs1をつかっていて時々、いらっとすることがある。
 たとえば、無線LANをOFFにしたいとき、いちいちマウスでWi-Fiを「切」にしなければならない。EmacsからON/OFFできれば、いいのに——ざっとググってみたのだけれど、そういうものは見当たらなかった。しかし、MacOS自体は「networksetup」というコマンドをつかえば、ON/OFFできるらしい。
 ざっくりEmacsからつかえるようにした。
 ついでにモードラインにWi-Fiの状態を表示するようにも。2
 ポート名はハードコーディングだけど。

;; Wi-Fi接続時、モードライン表示
;; Wi-Fi Power (en0): On
(require 'cl)
(require 'deferred)

(defvar y-WiFi-mode-set nil)
(defvar y-WiFi-update-timer nil
  "Interval timer object.")

(unless y-WiFi-mode-set
  (setq-default mode-line-format
  (cons '(:eval (y-WiFi-mode-line))
        mode-line-format))
  (setq y-WiFi-mode-line t)
  (setq y-WiFi-update-timer (run-at-time nil 60
      'y-airport-listen)))

(lexical-let ((WiFi nil))
  (defun y-WiFi-mode-line ()
    (if WiFi
 (propertize "[On]" 'face '(:foreground "red"))
      (propertize "" 'face '(:foreground "blue"))))

  (defun y-airport-listen()
    "無線LANの状態問い合わせ"
    (interactive)
    (deferred:$
      (deferred:process 
 "networksetup" "-getairportpower" "en0")
      (deferred:nextc it
 (lambda (x)
   (if (string-match-p "On" x)
       (setq WiFi t)
     (setq WiFi nil))))))

  (defun y-airport-on()
    "無線LANをONにする"
    (interactive)
    (deferred:$
      (deferred:process 
 "networksetup" "-setairportpower" "en0" "on")
      (deferred:next
 (lambda()(setq WiFi t)))))

  (defun y-airport-off()
    "無線LANをOFFにする"
    (interactive)
    (deferred:$
      (deferred:process 
 "networksetup" "-setairportpower" "en0" "off")
      (deferred:next
 (lambda()(setq WiFi nil))))))

Footnotes:

1

GNU Emacs 24.5.1 (x86_64-apple-darwin14.3.0, NS apple-appkit-1347.57)

2

もしかしたらrequireが足りないかもしれない。

2016年1月28日木曜日

エイドリアン・レイン「暴力の解剖学: 神経犯罪学への招待」

 エイドリアン・レイン「暴力の解剖学: 神経犯罪学への招待」

 2016年初の読了本である。
 やっとのことで読み終えることができた。

スキゾイドパーソナリティ障害の七つの症状のうちの少なくとも四つ、すなわち「親しい友人がいない」「一人で行動する」「無感覚」「親密な人間関係や家族の一員たることを望まない」を示しているように思われる。(中略)七項目中の四項目の該当は、臨床診断として十分なものだ。

 – エイドリアン・レイン「暴力の解剖学: 神経犯罪学への招待」

 なんてことだ。該当しとるがな。

2016年1月27日水曜日

器用?

ふだんこうなっているトイレが

こうなっていたら当然、猫がウンコのあとにスコップをつかって埋めたって思うよね? 埋めそこねたのもあるけど。

2016年1月22日金曜日

GnuCashつらつら

 ありとあらゆるお金の出し入れをGnuCashに入力して——ようやく三年近くのデータがたまった。つらつらながめていて年間、どのくらいお金をつかっているのか、ようやく判明した。
 たとえば、勘定科目ツリーウィンドウの費用の「合計(期間)」が一年間、かかった費用ということになる。1普通には収入があるものなので、それは収益が該当する。で、年間の利益(収益 - 費用)はサマリーバーに表示される。これがプラスなら資産は増えたということでよろこばしい。マイナスは資産が減ったということだ。通常はここはプラスだろう。2
 ただしここには株式投資のキャピタルゲインは計上されない(ようだ)。3
 それは資産の項目になる。
 ある意味、これは当然で株式の購入、売却は通常、資産の項目間の移動になるからだ。手数料などは費用に計上されるが、100万円のキャピタルゲインは資産の100万円の増加としてしか、あらわれない(と思う)。4
 サマリーバーの純資産は今、この瞬間(会計期間の最新)の状態で、これがマイナスということは借金生活をしているということにほかならない。
 待て。ほかならないなんていっている場合じゃないじゃないか!

 つくづく思うのは社会人になってからのデータが全部あればなぁ、ということだ。ながめているだけで一日、飽きないような気がする。

Footnotes:

1

会計期間は「設定 >> 会計期間」で設定できる。

2

マイナスは年々、手持ちのお金が減っていっているということである。

3

配当金は収益として計上される。

4

そうやって考えると、キャピタルゲインに税金がかかるのは納得がいかないことかもしれない。銀行口座を移しかえたのと同じことなんだから。手数料がかかるのはしかたないとしても。

2016年1月9日土曜日

BUFFALO WLI-UC-GN、壊れる

 うちのやんちゃ娘(メス猫10ヶ月)はひどいやつで、帰ってくると、ThinkPad X60を棚から落としてやがった。何だかんだとまだ使っているのに——まぁ、ThinkPad自体は動いたのだが、USDに挿しっぱなしにしていたBUFFALO WLI-UC-GNがぶっ壊れてしまった。
 もう無線LANにつながらない。
 MacBookAirからsshではいって作業できるようにしていたのに。
 つかえない、と思うと、いろいろ不便なわけで。時間起動とか、仕込んであるし。そのデータをひっぱるのに、LANをつかっていたのだ。
 はー。
 なんてことをしてくれたんだ、うちのやんちゃ娘は。
 しかたないのでTimeCupsleに直つなぎにしておくことにした。Avahiを導入しておいてよかった、と思った瞬間でもあった。ただし置き場所の問題で電源はいれっぱなしだし、お立ち台にも接続できないしで、割と踏んだり蹴ったり。うーむ。

2016年1月8日金曜日

2015年決算

 本:102冊
映画:75本
WIND:5日/40.2km

2015年で最大にショックな出来事はやはり、本栖湖にiPhoneを落としたことであろう……。