2011/10/07

楽しいAppleScript

# このタイトルはトーゼン「楽しいRuby」にかぶせています。

makiaea.org | wifi power toggle using applescript in mac os x 10.7 lion
を目にして衝動的に久方ぶりに AppleScript Editor.app を起動してしまいました。
すっかり記憶喪失になっていたので
以前作った github.com/midore/readbook-scpt を開いて書き方を思い出しました。

実は普段は
~/.bashrc に

alias 'wifi'='/usr/sbin/networksetup -setairportpower en0'

を追加していて
$ wifi on
などして使っているんですが...それはそれとして
この主題は面白いです。

その昔、梅棹忠夫氏は
将来は誰でもが気軽にプログラミングする時代がくるんじゃないか、と言ったとか言わなかったとか。
# 原典が何だったか思い出せない。*1
そんなことを心の片隅におきつつ...

# wi-fi.scpt
script wifi

  on my_dialog(title, str, b_str, b_no)
    tell application "Finder"
      activate
      display dialog str buttons b_str default button b_no with title title
      set res to button returned of result
      return res
    end tell
  end my_dialog

  on setpower(onoff)
    return do shell script "networksetup -setairportpower en0" & space & onoff
  end setpower

  on getpower()
    return do shell script "networksetup -getairportpower en0"
  end getpower

  on getinfo(opt)
    return do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport" & space & opt
  end getinfo

  on endinfo()
    return my_dialog("Wi-Fi Info", getinfo("-I"), {"Done"}, 1)
  end endinfo

end script

on run
  tell wifi
    set v to do shell script "networksetup -version"
    # networksetup, Version 1.8
    # Copyright 2002-2010 Apple Inc. All rights reserved.
    set str to word 5 of getpower()
    if str is "On" then
      set msg to {"Off", "GetInfo", "Cancel"}
    else
      set msg to {"On", "Cancel"}
    end if
    try
      set res to my_dialog("Wi-Fi", v & return & return & "Wi-Fi Power (en0): " & str, msg, 1)
      if res is "GetInfo" then
        return endinfo()
      end if
      setpower(res)
      my_dialog("Wi-Fi", getpower(), {"OK"}, 1)
    on error number -128
      return
    end try
  end tell

end run

きりがないのでここらあたりで完成。

*1
あったあった。
出典『知的生産の技術』岩波新書
P.15

ややさきばしったいいかたになるかもしれないが、わたしは、たとえばコンピューターのプログラムのかきかたなどが、個人としてのもっとも基礎的な技能となる日が、意外にはやくくるのではないかとかんがえている。すでにアメリカでは、初等教育においてコンピューターの言語FORTRANをおしえることがはじまったようだ。

この本の初版は1969年7月21日。
梅棹氏は、プログラミングが「個人としてのもっとも基礎的な技能」になると書かれていますので、私が記憶していたこととは微妙に異なりますな。

それにしても「個人としてのもっとも基礎的な技能」としてのプログラミングとは?

特に言語指定はしないが日本語の読み書き&会話ができることと等しくプログラミングソースを読み書き&実行できる技能、
...と解釈したとして...
では、いま、この日本で、梅棹氏の予想は現実のものとなっているか? というと...幸か不幸か? No かもしれません。
けれどこれまた幸か不幸か?
こんな私でも「易しい」ものを読んだり書いたりできているのだからある意味 Yes なのかもしれません。

これからもっとプログラミングが普及して、梅棹氏の言ったような基礎的な技能となる日はくるんだろうか。もしそんな日がくるならば AppleScript も楽しい言語の1つとして普及してほしいなーと思います。

Steve Jobs 氏を悼み「ヒッピーに捧ぐ」を聞こう。

-- screen shot

0 件のコメント: