M4 MacBook Pro 入手

イメージ
 少し前から出る出ると言われていたM4のMacBook Proの噂を、気にしていましたが…。 発表→即発注! 10月30日に発注しましたが、発売日が11月8日で、自宅への配送が11月12日というスケジュールでした。 仕様は、 ・CPU:M4 ・メモリ:32GB ・SSD:1TB ・96W UCB-C電源アダプタ これに、ソフトウエアを追加(学生・教職員向けPro Appバンドル) ・Final Cut Pro ・Motion ・Compressor ・Logic Pro ・MainStage 少々盛ったおかげで、結構な金額になりました。 ただ、これまで使用していたM1 MacBook Proが6万円強で下取り可能ということでしたので、かなり嬉しい状況です。  4年間使用して、20万→6万なので、十分元が取れた気がしますね…。 移行アシスタント稼働 着弾したので、早速起動しました。 移行アシスタントを使えば、Thunderbolt経由なので結構速そう。 ということで、設定し開始! およそ、1時間ほどの予想時間でした。(300GB程度かな…。) 移行後の調整  今の移行アシスタントは、非常にしっかり動作してくれて、これまでの環境をすっかり持っていってくれました。  ただ、一部のWeb系のソフト(slackやsteamなど)で、再認証を行わないといけないものだけ手間がかかりました。 まぁ、全く問題ないレベルの作業です。 開発系の環境は、再設定しようと思い、homebrewを一旦すべて削除した上で、入れ直しを行いました。  バージョンはすべて新しめのものに差し替えて…。  ここまでで、約1日かかってますが、ほぼ運用開始可能な状況に。 とりあえず使った感想  速度は非常に満足なレベルです。  バッテリーの持ちが尋常じゃないです。  昨日、講義でプロジェクタ・外部ディスプレイ・内蔵ディスプレイで表示させながら、午前3時間、午後3時間フルに使用しましたが、帰るときには50%くらい残っていました。  90%以上充電されていれば、通常の使い方であれば丸2日は十分に使えそうです。 ACアダプタを念の為持っていきますが、出番はないです…。 (96Wのアダプタにする必要はなかった気がする) もう少し、色々と試して見ようかと思っています。 ちなみに、単純なBenchmarkの結果は以下の通り

sed:改行含む文字列への置換

少し苦戦した…

すでにコンテンツのあるサイトのドメイン移転とサーバ変更、管理の委託を依頼されて作業を行う。
  1. ドメイン移管
  2. サーバの変更
  3. コンテンツの設置
  4. メールアカウントの設定
以上は、問題なく完了。

さて、あとはコンテンツの修正。

アクセス解析にGoogle Analyticsを利用するのだけれど、これまでの業者さんは未設置。
そこで、各ページに仕込む必要があるけれど、いちいち修正するのはさすがに面倒。
なにせ30ページ程のhtmlが2つもある。

こんな時は、sedの登場ですな。

まずは、jsフォルダを作成。
以下のような内容のg_ana.jsを作成。まぁ、ここまでは、Google Analyticsの吐き出すコードをほんの少し変更するだけでOK
 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-xxxxxxxxx', 'auto');

  ga('send', 'pageview');

でもって、こいつを読み込むように各htmlに書き込む。

とりあえず、</head>の前に設置すれば良いので、
<script type="text/javascript" src="js/g_ana.js"></script></head>
に置換をかければ良いわけだ。

sedで処理する

60回以上も「ファイルを開く」→「編集(貼付けるだけなんだけど)」→「保存」なんてやってられない。

$ sed s#</head>#<script type="text/javascript" src="js/g_ana.js"></script></head># ./index.html | less

で確認してみる。
とりあえず、OKなのを確認。

まあ、これで何も問題はないのだけれど、ソースを見た時に</head>の位置が気持ち悪い。(美しくない)

<script type="text/javascript" src="js/g_ana.js"></script>
</head>

こうなっていて欲しい。</script>と</head>の間に改行を入れたいちゅうわけだ。
こんなもの、\nを含めて置換すりゃ一発と思ったのだけれど、これが上手くいかない。

$ sed s#</head>#<script type="text/javascript" src="js/g_ana.js"></script>\n</head>#

結果を見ると、</script>n</head> 改行されない。しかも\n→n になってるだけやんか…。

試行錯誤を、繰り返す。
繰り返す
繰り返す×10…

苦戦したわ。
最終的には、以下の用に記述すればOKだった。
$ sed 's#</head>#<script type="text/javascript" src="js/g_ana.js"></script>'\\$'\n''</head>#'

置換文字列は、A+改行+Bの構成になっている。
置換したい文字列に"(ダブルクォート)が含まれているので、基本的には’(シングルクォート)で囲んでいる。

A='s#</head>#<script type="text/javascript" src="js/g_ana.js"></script>'
改行=\\$'\n\
B='</head>#'

という形でOK。

最後に罠が…

これでOKだろうと思ったが、実際に書きだす前に最終確認。

$ sed 's#</head>#<script type="text/javascript" src="js/g_ana.js"></script>'\\$'\n''</head>#' *.html

index.htmlは問題なく置換したが、途中でERRORを吐いた。
sed: RE error: illegal byte sequence
なぬ?
よく調べてみると、文字コードがUTF-8だけでなく、EUC-JPで書かれたコンテンツが混ざっている。

こらこら。
文字コードまで変換するのは、もっと面倒。なので、そのまま置換したい。

先頭におまじないを付けてやることで回避した。

LC_ALL=C sed 's#</head>#<script type="text/javascript" src="js/g_ana.js"></script>'\\$'\n''</head>#' *.html

これで、文字コードが混在していてもOK。

最終的には、以下のコードを実行。

LC_ALL=C sed -i.bak 's#</head>#<script type="text/javascript" src="js/g_ana.js"></script>'\\$'\n''</head>#' *.html

-i.bakオプションで、元のhtmlをhtml.bakにして保存する。

まあ、当然コピーで作業しているから、不要なんだけど、あとですぐdiffしたいし、ミスがあったら書き戻せるようにしておきたいからね。

ちゅうことで、60回以上エディタで書き換える作業をすること無く、終了。

時間的には、少し短いくらいかもしれないけど、精神衛生上極めて気持ちがいい。
改行1つに拘らなければ、1分で作業完了だったけど…(笑)






コメント

このブログの人気の投稿

WPS Officeで日本語入力ができない

VirtualBoxでUSBから起動

Virtualboxとnvidiaドライバ