2015-09-19

Yosemiteでの、SSDReporterの導入とデータ状況

最近は"Yosemite 10.10.5"の観察に時間が取られて、このbloggerへの投稿が滞っています。

さて、私の主マシンは"Mac mini (Mid 2011)"ですが、2013年の初頭に内臓HDD*1を内臓SSD*2に換装しました。そのときに「Apple サポート コミュニティ」で有用な論議を頂きました。改めて感謝いたします。

それ以来;
  • 2つのSSDは正常に動作していますし、
  •  "Disk Utility"も "SMART Status: Verified" を示しています。
"Disk Utility"の出力を示します、図1a, 図1b,;
Figure 1a. System drive at Disk Utility

Figure 1b. Data drive at Disk Utility


"Yosemite 10.10.5"は安定した動作を始めたので、内臓ドライブの"SMART Status" を定量的に示すアプリケーションを検索しました。その結果、「SSDReporter」を見つけ、「App Store」から「¥ 480.」で入手しました。2台のSSD情報を下図2に示します;


Figure 2. SSDReporter output


これらのドライブの利用状況は、ターミナルで「df -H」 というコマンドにより得ることが可能です。このコマンド出力の最右列「Mounted on」を付けると見やすくなります。

Figure 3. "df -H / / Volumes / SS2 "


今後、上に示した情報を、長期に渡って計測すると、SSDの経時的劣化の挙動が解るかもしれません。素人予測では「Health: 70%」位を閾値として観察しようかと思います。



(追記)図2から4ヶ月経過のレポート

Figure 4.  SSDReporter output after four months.

図4と図2を比較しても変化が見られません。図2では、初期不良のセグメントが数パーセントもあって 驚きましたが、4ヶ月経過で1%以下ならば安定していると思われます。


この記事の履歴
  1. 開始 2015-09-19(土) 17:25:00
  2. 追記 2015-12-30(水) 12:09:25 図4 4ヶ月経過しても変化無い




2015-08-21

iTunesでCalmRadioを設定する


I wrote the following article in the nearly three years ago.

However connection has become unstable since the end of last year. So I had to e-mail to "CalmRadio" in June of this year. Then, that from September of last year in CalmRadio of to have been the server's update.

So we repeat the registration to the "Playlists of iTuens". Below we will show how to set it.

Figure 0 iTunes: CalmRadio of Playlist: clic

Figure 1 iTunes: Internet Songs

Figure 2A almradio.com: LIST & gt; LOGIN, click iTunes button.

Figure 2B select your channel: this exaple shows the 'Latin' channel.

Figure 2C confirm the selection: select speed and clic.

 Figure 3A iTunes: Type ⌘ • i or Clic left-button and Select get-info.

Figure 3B Check song name. You can edit it. Type enter or clic OK

Figure 3C Confirm 'LATIN AMERICA'

Figure 4A iTunes: Back Figure 0. Perform (1, 2, 3).

 Figure 4B iTunes: Perform (1, 2, 3, 4, 5).



Environment:

  • Yosemite 10.10.5 (14F27) @ Mac mini (Mid 2011)
  • iTunes 12.2.2.25
  • Flets HIKARI 1Gbps with router (PR-500MI)

Impressions

  • The three years ago I felt've been clear sound quality at 192kbps.
  • Now it came out three-dimensional sense of sound at 320kbps.
  •  In three years, 320/192 = 1.7 times.
  • In the CD, 44.1kHz * 2ch * 12bit / ch ~ 1000bps.
  • CD is likely to traffic the Internet in direct. What is the outgoing of.

報告

  • この記事の原稿は日本語で書きましたが、どういう理由か不明ですが、表題以外は英語になってしまっています。
  • 原稿の製作手順としては;
    1. 非公開Bloggerで、Firefox「日本語」で原稿を書き、
    2. それを「Google Chrome」で「日本語 → 英語」表示でブラウズし、
    3. 英語表記が妥当になるまで、(1,2)を繰り返します。
  • でも今度のように原稿が英語になる理由がわかりません。
  •  しばらく検討しますので、お許しください。

____

The history of this article

  1.  Start 2015-08-21 (Friday) 16:12:14 
  2.  追記 2015-08-23(日) 16:28:07  報告





2015-07-13

pdfgrepを使って、pdf形式のzshマニュアルを簡単に検索する

はじめ


Terminalで「man $name」 を見る時には、zshスクリプトを用いて、pdf形式に変換して、閲覧と保存しています。なお、そのスクリプトの要点は次の2行です;
  • man -t ${name} | pstopdf -i -o ${name}.pdf  
  • open $name.pdf
このような手間を掛けるのは、次のようなメリットがあるからです;
  1. Previewでコメントを付けて保存すれば、見返すのが効率的になる。
  2. 過去に閲覧したマニュアルが一瞥できる。

しかし、これらのpdfを検索をするのに、「grep」や「mdfind」は不適切でした。インターネットで調べると、「pdfgrep」が良いらしいです。そこで「brew info pdf  」をすると「pdfgrep」がありました。
% brew search pdf   
cups-pdf        pdf-redact-tools    pdf2svg            pdftohtml
diff-pdf        pdf-tools        pdfcrack        qpdf
djvu2pdf        pdf2htmlex        pdfgrep            svg2pdf
mupdf-tools        pdf2json        pdflib-lite
以下略...

具体例 

図1

Figure 1. pdfgrep on zshall.pdf.





















図1では、検索のターゲット・ファイルとして 「zshall.pdf」としています。4つのケースを示しています;
  1. pdfgrep -inH ' f ' zshall.pdf 
    • ノイズが多い。
  2. pdfgrep -inH '          f ' zshall.pdf
    • ノイズ消失!
  3. pdfgrep -inH '          = ' zshall.pdf
  4. pdfgrep -inH '          @ ' zshall.pdf
表示が素敵なのに驚愕した;
  • ファイル(magenta):ページ番号:(green)が全ての行に明示されていて、
  • 検索語(red)も視認性がいい、
  • 検索結果行(white)も常に1行に収まっている。
これだけでも「zshマニュアル」 を気楽に調べることが出来てうれしい。


 図2

Figure 2. search printf for *.pdf
  • コマンド: pdfgrep -inH printf *.pdf 
    • 検索対象をzshに限定しなくても良いのか。
  • 一部にエラーが出ているが、検索内容には問題はない;
    • poppler/error: Illegal URI-type link
    • ZshWiki_array.pdf: browser Firefox:: html -> pdf.
    • エラー出力は別ファイルに纏めた方がよいだろう。
  • (zshall.pdf: 7) = (zshbuiltin.pdf: 2)+(zshcontrib.pdf: 5)


これから


冒頭で紹介したスクリプト(man2pdf)はマニュアルの管理もする。これにpdfgrepを組み込みたい。


____
この記事の履歴
  1. 開始 2015-07-13(月) 00:44:41




2015-06-15

zsh: ZishWiki’s “scripting: array”に関するコメント


zshは独特の機能が満載だが、初心者には使い方が判りにくい。「man zsh」から遡ると15個ほどのオンライン・マニュアルが見える。でもインデックスがなく苦戦している。
私はzshに少し慣れてきたので、インターネットの資料を探索し始めた。すると、コンパクトに纏まったサイトを拝見した;
この「SITE MAP: scripting: array」に興味深い事例集があった;
この中で,特に興味深い2部分が連続していたので部分的に引用します;

(1) Create an array with each words of string.


私の以前の記事は違う方法を取りました;
そこでは空白区切りのスカラー変数sから配列aを生成する方法として;
  • a=( $(echo $s) )   #以前の記事
  • a=( ${=s} )          # ZshWiki
 

ZshWikiの表式方が短くてスマートだが、覚えにくいなぁ。もしも、次の表現がつかえると、より短くてイメージ的にも覚えやすいが;
  • a=(  =$s )
誰かSwiftでzshを整理してくれないかなぁ。

(2) Create an array of lines from a file


Macでの/etc/hostsには多数のコメント(#)が付いているのでもう少し複雑です。
  • buffer=( "${(f)$(cat /etc/hosts|grep -v '#')}" ); echo $buffer[1]
  • ==>;’127.0.0.1    localhost ’
また、等価な出力として、(“)の配置が違う表現があります。;
  • buffer=( "${(f)"$(cat /etc/hosts|grep -v '#')"}" ); echo $buffer[1]
  • buffer=( ${(f)"$(cat /etc/hosts|grep -v '#')"} ); echo $buffer[1]

私は最後の形式をよく使っています。
参考の為に、rootでのlsを示します;
  • buffer=("${(f)$(ls)}");echo $buffer[1]
  • ==>Applications 
この手法は番号付きls関数を作るのに役立ちました。感謝します。
なお、スカラー変数が改行(\n)区切りで、其の内部に空白( )がある場合では、次になります;
  •  % s="a\nbb cc\nddd"; a=( "${(f)$(echo $s)}" );typeset -p a;echo "\$#a=$#a" ⏎
    • typeset -a a
    • a=(a 'bb cc' ddd)
    • $#a=3

____
この記事の履歴
  1. 開始 2015-06-15(月) 21:15:12 
  2. 追加 2015-06-17(水) 11:04:51  a=(  =$s )
  3. 追加 2015-06-17(水) 11:41:47  s="a\nbb cc\nddd"; a=( "${(f)$(echo $s)}" );
  4. 修正 2015-06-23(火) 23:06:27  段落の後ろの空白行を手動で修正。他のblogへの移行を検討開始した。
  5. 修正 2015-07-25(土) 13:19:55 e → echo

2015-06-10

「Yosemite 10.10.3」と「MarsEdit 3.7」と「Thunderbird 31.7.0」と「Google 2-Step Verification」との関係

「外付けのドライブにYosemite 10.10.2」を新規インストールして、試運転してきました。意外にも安定しているので、内臓ドライブに10.10.3をクリーン・インストール仕様としましたが、インストールを繰り返すようで諦めました。「Recovery HD」からのインストールから「App Store」から内蔵ドライブへのインストールの積りが、「外付けのドライブにYosemite 10.10.2」への上書きになってしまいました。

こういう時に限って「タイム・マシン」のバックアップをしていなかたり、…。数日観察すると、問題点が出ないので「Disk Utility」を用いて「外付けのドライブにYosemite 10.10.2、上書き10.10.3」を内蔵に向けてリストアしました。

概ね「10.10.3」は良好に動作しているようでした、が問題が出てきました;
  • 「Thunderbird 31.7.0」でgmailにアクセスできなくなった。
  • 「MarsEdit 3,6.9」でGoogleのbloggerにアクセスできなくなった。
調べるとGoogleが推めている「2-Step Verification: 二段階認証」に「Yosemite 10.10.3」が対応した為の現象らしい。其の対応には次のサイトが判りやすかった;

Bloggerを運行する私としても、セキュリティの向上には賛成なので、「 二段階認証」を導入した。この時、iPhoneに設定していたメール・アドレスを間違えて入れてしまい、半日もロスをしてしまった。

其の結果、MacもiPhoneも「 二段階認証」に完全に対応した。でも、ThunderbirdもMarsEditも動かない!

慌てて検索すると;
  • 「Thunderbird」は「 二段階認証」に未対応。当面は「Mail」頼み。
  • 「MarsEdit 3.6.9」は「MarsEdit 3.7」との事。

そこで「App Store」から「MarsEdit 3.7」ダウン・ロードしようとしたが駄目だった。アップルのテクニカル・サポートに聞いたら「セーフ・ブートしてみて」と言われたが改善せず。むしろ「App Store」の問題ではないかと思い、相談すると「iTunes Store」にメールを打つように助言をうけた。iTunesの方から;アップルIDなどの問題はない。一度MarsEdi.appを消去したら;との助言をいただく。

「/Application/MarsEdit.app」をTrashに入れて、再度「App Store」から「MarsEdit 3.7」ダウン・ロードすると成功。いま、「MarsEdit 3.7」で原稿を書いています。あ、「MarsEdit 3.7」からこのブログへのアップロードも成功しました。


その後、落ち着いて検索していると、「 二段階認証」に未対応のアプリに対する回避法があるのに気が付きました;

ここから遡って「アプリ パスワード: App-speciffic passwords」の登録に行き、「MacのThuderbird」と入れると「wwww xxxx yyyy zzzz」といった一度切りのパスワードが出ます。それを「Thunderbird 31.7.0」のGmailのアカウント設定にいれると、ログインできました。


其の時に、バックアップ電話番号の登録を強く推められたので登録しました。色々と複座な仕組みが生まれているようです。



____
この記事の履歴
  1. 開始 2015-06-10(水) 21:33:07 
  2. 変更 2015-06-11(木) 11:53:21 タイトルに『と「Google 2-Step Verification」との関係』 を追加。
  3. 追加 2015-06-11(木) 16:36:36 App-speciffic passwords

2015-05-31

zsh: Coloring outputs for here-documents and printf.


経緯


すでにコマンド・ラインから彩色した文字を標示する方法を以下のサイトで説明しました;
   

その後、私は幾つかのスクリプトを作っていて、この「彩色するecho関数群」を楽しんでいます;
  •  要点を効果的に表示できる、
  •  使いやすい。

そこで、「彩色するecho関数群」を2つの事例に応用出来たので紹介します;

  • Here-Documents: a standard shell feature.
  • printf: shell built-in command.


実例


何はともあれ、テストしたスクリプトのターミナル出力を示します。スクリプトを後に紹介します。


Figure 1. Coloring outputs in “here-documents” & “printf”


スクリプトの簡単な説明

I “here-documents”


・彩色する部分を彩色するecho関数に引数として渡し、
・更に、コマンド・サブスティチューション; $(…);に挿入した。


#  EXAMPLE Ia  "abc def ghi"
#             |                    ***
#            ⇣
#  EXAMPLE Ib  "abc $( bc_ 'def'' ) ghi」
#                                  ---------***--

II “printf”


この問題を解くのに、下記の資料が参考になりました。この本の「promptsに関する説明」では、 zsh Form「%1~」に彩色するエスケープ・シーケンスを添付しています;
 ・From Bash to Z Shell”, p149.

そこで「printf format」でも、フォーマット記述子にエスケープ・シーケンスを添付しようと考えました。下の例では、フォーマット記述子「%3d」に操作するとします;

  • 彩色のエスケープ・シーケンスは記述子「%3d」の前後に配置されます
    • \e[36;1m: 彩色する開始シークエンス
    • \e[m: 彩色の停止シークエンス


#  EXAMPLE IIa   "%2d  %3d  %s"
#       |                                ***
#       ⇣
#  EXAMPLE IIb   "%2d  \e[36;1m%3d\e[m  %s"
#       |                                    --------***----
#       ⇣
#  EXAMPLE IIc   "%2d  $bc_%3d$fin  %s"
#                                          ----***----

スクリプト


スクリプトを示します。彩色するecho関数群のうちで、必要なものは先頭に直接書いておきました。従ってこのスクリプトでの単独テストをできます。

#!/bin/zsh 

# t.colors: shows Coloring outputs for here-documents and printf.

# Usage: t.colors⏎

# A paort of Coloring Echoes --------------------
btg(){echo -n "\e[1;38;42m${@}\e[m"}
b_y(){echo -n "\e[1;7;33m${@}\e[m"}
br_(){echo -n "\e[31;1m${@}\e[m"}
bg_(){echo -n "\e[32;1m${@}\e[m"}
bc_(){echo -n "\e[36;1m${@}\e[m"}
by_(){echo -n "\e[33;1m${@}\e[m"}
bt_(){echo -n "\e[38;1m${@}\e[m"}
b_w(){echo -n "\e[1;7;37m${@}\e[m"}
et_(){echo -n "\e[38m${@}\e[m"}
e_n(){echo "\e[38m${@}\e[m"}

#---------------------------- main --------------------------
prg_name=${0##*/}

fluits=( orange kiwi )
unit_prices=( 200 60 )



cat <<-EOF_example_Ia
 ========================================================================
   EXAMPLE Ia of here-documents.
     (1) Here is an $fluits[1].
     (2) There is a $fluits[2].
     ...
     
EOF_example_Ia



cat <<-EOF_example_Ib
 ========================================================================
  $(btg ' EXAMPLE Ib ') for $(b_w ' here-documents ').
     $(b_y '(1)') Here is an $(br_ $fluits[1]).
     $(b_y '(2)') There is a $(bg_ $fluits[2]).
     ...
      
EOF_example_Ib



echo '========================================================================'
echo "  EXAMPLE IIa for printf."

echo "   #   @price    fluit"
echo '   ---------------------'
for j in {1..2}; do
 #                ***     ****
 printf "   %d    %3d     %-8s\n"\
     $j $((unit_prices[$j])) " $fluits[$j] "
done
echo '\n'



echo '========================================================================'
et_ ' ';btg ' EXAMPLE IIb ';et_ ' for ';b_w ' printf ';e_n '.'

echo "   #   @price    fluit"
echo '   ---------------------'
for j in {1..2}; do
 #                --------***----     ----------****-----
 printf "   %d    \e[36;1m%3d\e[m     \e[1;7;33m%-8s\e[0m\n"\
     $j $((unit_prices[$j])) " $fluits[$j]"
done
echo '\n'



bc_='\e[36;1m'; fin='\e[m'; b_y='\e[1;7;33m'
echo '========================================================================'
et_ ' ';btg ' EXAMPLE IIc ';et_ ' for ';b_w ' printf ';\
  et_ ' using ';b_w ' short-cut ';e_n '.'

echo "   #   @price    fluit"
echo '   ---------------------'
for j in {1..2}; do
 #                ----***----     ----****----
 printf "   %d    $bc_%3d$fin     $b_y%-8s$fin\n"\
     $j $((unit_prices[$j])) " $fluits[$j]"
done
echo '\n'
echo '========================================================================'



感想


「EXAMPLE IIc」で、変数;$bc_,;が導入された。このスペルは同じ色を表現するecho関数と同じスペルに設定できた。そこで「coloring short-cut variables」を先に定義して、逆に「coloring echo functions」を定義したいと思います。
 ・bc_=‘\e[36;1m’; fin=‘\e[m’
 ・bc_(){echo -n “$bc_${@}$fin”}

今回までで、zshの彩色環境は整った。今後は補完スクリプトの整備がしたいです。


____
この記事の履歴
  1. 開始 2015-06-02(火) 21:12:46 
  2. 追加 2015-06-03(水) 13:23:38 感想:  coloring short-cut variables

2015-05-18

zsh: echo command

経緯


私は最近まで『改訂版 Mac OS Xターミナルコマンド・ポケットリファレンス、MINAKAMI Shinobu、2006第2版、技術評論社、ISBN4-7741-2877-5』を参考にしていました。でも「bash→zsh』に乗り換えると、流石に最近のMacに則した解説書が欲しくなりました。

そこで次の本を購入しました;

  • “Macintosh Terminal Pocket Guide Third release”, 
    • Daniel Barrett, 2012/7/2,
    • O’Reilly, ISBN: 978-1-449-32834-4.

疑問点


以前から釈然としていなかった「echoのオプション」を見ると
    ・MINAKAMI版, p53: 「-n」
    ・Barrett版, p170: 「-n, -e, -E」

zshを運行している私の経験から見ると、Barrett版が正しいと思います。

そこで、調べて見ました。結果を図1に示します;
 

Figure 1. ' shell built-in echo' and '/bin/echo'


大雑把にいえば;
  • 日常的に使っている「echo」は『shell built-in echo』である。
  • 日常的に使っている「man echo」は『/bin/echoのマニアル』である。

従って、zshで使っている「echo」の挙動を知るには、我々は図2の様な「zshのオンライン・マニュアル」を見るべきです。

と書きましたが、間違えでした。次の図3にお進みください。ただし、最新バージョンの確認には使えますので、図2はそのままとします。


Figure 2. zsh: Shell-Builtin-Commands:: echo
と書きましたが、間違えでした。次の図3にお進みください。


ターミナルでのzshマニュアルズ

Figure 3. “echo” part of the zshbuiltins.pdf displayed in a preview.app.

図2を書いている頃は、 私は「man zsh」だけがzshのオンライン・マニュアルと思っていました。でも、試しにターミナルで「man zshall」と叩くと、zshallがターミナル上に現れました! 当然「zshbuiltins」もあります。 zshの資料検索にとってこれはとてもありがたいことです。

『man→ pdf』の変換には、「man2pdf」という手作スクリプトを使っています。pdfにはコメントやブックマークを付けたりできるからです。


そこで「zshマニュアル(pdf)に対する簡易検索と表示」をするスクリプト(zzz)を試作しました。



Figure 4. A typical operation example of zzz.

pdf資料の検索に「grep」を使うと、不安定な出力が出ます。そこで「mdfind」で代用しています。

「mdfind」: 「Spotlight search」のターミナル版です。

echoの有効活用


「echo -E」は、改行区切りの処理に有用と思う。特に「\n, \t」がコンパクトに表示されるので、問題把握が迅速になると感じます。


メモ

  • 今後、コマンドとmanが食い違う場合、「where」を用いてコマンドが複数あるかどうかをチェックから始めよう。
  • zzzは安定したら、公開します。



____
この記事の履歴
  1.  開始 2015-05-18(月) 22:16:56 
  2.  追加 2015-05-23(土) 18:51:39 ターミナルでのzshマニュアルズ

注目の投稿

Terminalでの、なんちゃってViモドキ

近頃、ようやくKarabiner-Elementsに慣れてきたので、 Terminalで動作する「擬似Vi-Mode」を作って見たので、ご紹介します。 『概要』 「擬似Vi-Mode」の所以は、方向キー「←↓↑→」を通常の「hjkl」ではなくて「jkil」としました。これ...