MacBook Air2013のmacOSをMojaveからCatalinaを素っ飛ばしてBig Surにアップグレードしてみた

長らく手元のノートPCであるMacBook Air 2013のOSをアップデートしない儘で来ました。前回のメジャーアップデートでmacOS High Sierraハイ・シエラからmacOS Mojaveモハベ 10.14(18A391)としたのが2018年10月24日、macOS Mojave 10.14.6(18G84)としたのが2019年8月1日ですから、2021年10月現在2年以上もの間、等閑なおざりにしていた勘定になります。其の間にも追加アップデート10.14.6(18G87)が2019年8月19日、追加アップデート10.14.6(18G95)が2019年9月6日とメジャーアップデートならぬMojaveの追加アップデートを重ねたのでしたが、時は2019年10月8日より既にバージョンナンバー10.15のmacOS Catalinaカタリナへの時代へと移って行きました。

macOSアップグレードを阻んでいた事情

システム環境設定からアップデート通知を、もうずっと、端末を広げる度に目にしながらも、最新OSへの入れ替えを忌避していたかと言えば然に非ず、出来得るものなら最新OSの享受を欲していたにも拘らず、そうは問屋が卸さない事情がありました。ストレージの容量不足です。手元のMacBook Air 2013の内蔵SSDの容量は128GB、2013年師走の購入当時は勿論、最後のメジャーアップデート迄にも不足はなかったものの、2019年10月のmacOS Catalinaへのアップデートの際には容量不足の警告と言う引導を渡されていたのでした。

MacBook Air 2013に表示される macOS Big Surのデスクトップ画面
MacBook Air 2013に表示される macOS Big Surのデスクトップ画面

手元の端末のMacBook Air 2013に、正確を期して記せば、11-inch, Mid 2013とされる様に画面サイズは11の2013年中旬発売のモデルで、CPUは1.3GHzのIntel Core i5、メモリは1600MHzのDDR3、4GBを搭載しており、此のストレージ、内蔵SSD容量が128GBであるのでした。此の端末にはiPhoneとの連携を含めて充分満足していましたので、2016年10月にMacBook Pro 2016年モデル、2020年12月にMacBook Air M1を購入してからも最前線で現役として活躍させていました。そして今尚現役として健在であるからこそ最新OSへのアップグレードを望むのでしたが、ストレージ不足に阻まれていると言う状態であったのです。

MacBook Air 2013のOS遍歴

MacBook Air 2013の当初のOSはバージョン10.9のOS X Mavericksマーベリックスでした。翌年2014年11月にはバージョン10.10のOS X Yosemiteヨセミテ、其の翌年2015年9月にはバージョン10.11のOS X El Capitanエル・キャピタン、其の翌年2016年10月にはバージョン10.12のmacOS Sierraシエラ、其の翌年2017年9月にはバージョン10.13のmacOS High Sierra、そして2018年10月にバージョン10.14のmacOS Mojaveと、OSのアップグレードを代々重ねて来ましたが、Mojaveにて最新OSへの更新は停滞していたのでした。此の状況から今回、本記事ではバージョン11となるmacOS Big Surビッグ・サーへのアップグレードを目論見、実行に移した様子を出来得れば活写したく思うものです。

投稿日:
カテゴリー: Mac

MacBook Air M1 2020のTime Machine導入記

Apple社が自社製PC Mac の心臓部をIntel社から調達していたものを、iPhone由来の独自プロセッサー M1 に切り替えると2020年6月の開発者会議で発表し、 実際年末に発売した3機種の内の1機種が、今回主役の MacBook Air にて、其の筋のネットメディアや、ガジェット好きユーチューバー及び新し物好き抔が、 発表と同時に入手して発信する情報を見るに、其の手に有り勝ちな、提灯や的外れ、 曖昧さを差し引いても、どうにも此れはゲームチェンジャーであるとしか思えず、 師走に発注して年を跨いで落掌したのが2021年1月24日、 以来、メイン機として使用していたMacBook Pro 2016から徐々に妥当な業務から移行させ、今は其の使用頻度が半々となる中、Apple社の発表、前評判からそう遠くない実感の得られ、頗る満足の行く使い心地を満喫しています。

MacBook Air M1 2020

如何なる満足を得られたるかと問われれば、先ず挙げられるのはバッテリーの持ちの良さです。Intel Macと同時利用ですので其の差は歴然で、やはり中央プロセッサーの寄与するところが大きいのでしょう。最早、社会全体のエネルギー消費に思いを致すくらいで、CPUの寡占は忌むべき事態であるとの感慨さえ抱かせられるほどです。加えて内製プロセッサーであれば基本ソフトウェアとの整合性も取るべく設計され、基本ソフトウェアからも歩み寄れば、それも省電力に与って力のあるのは疑うべくもありません。少し早く、去年2020年末に入手したiPhone 12 Pro Maxのバッテリーの持ちの良さと合わせて、毎晩充電すると言う馬鹿らしくも煩わしいルーチンワークから免れられたのが、先ず挙げられるご利益の一つでしょう。

次に挙げられるのが、処理速度です。事前情報を齎らしてくれて有難いとは言え、情報鮮度が求められるガジェット系ユーチューバーの情報は些か出鱈目な部分も目立ちますし、処理能力を言うに動画編集ばかりなのも困りものではあります。知りたいのは Macならでは、Xcodeの性能で、当然先ずインストールしたのもXcodeです。さて、其れに抱いた印象ですが、顕著に速度差の現れるのはiOSシミュレーターです。本ブログにある通り、手元ではゲーム開発が主たりますので、特にアクションゲームで反応が鈍ければ開発速度も比例して鈍まるのが道理、コンパイルも其の速さを体感出来、其の上 Mac内で動くiPhoneが実機に遜色ないと迄は言いませんが、問題無いレベルに収まるのは嬉しくも、本来此れこそあるべき状況なのだとは思います。此れには矢張り中央プロセッサーが内製で、此れも内製のiPhoneのAシリーズと連携が密接に取れているのが大きく寄与していると考えるのが自然でしょう。また、手元の環境では其れ程大きなプログラムは扱わないためiOSシミュレーター程顕著ではありませんが、コンパイルの速度も体感的に向上しているのは、前述通りはっきりと感じられます。処理速度は全面的に向上しているとは言え、特に此の開発環境の面の発展が著しいのは、Apple社の発表のみからでも容易に予想可能で、思っていた通りに的中、我が意を得たりとほくそ笑んだところでもあります。

以上、バッテリーの持ちの良さ、特に Mac特有の開発環境の処理速度の向上、の2点がMacBook Air M1 2020の得られた特筆すべき恩恵です。2021年4月21日のAppleイベント「Spring Loaded」で発表され予約受付の開始された新型iMacと新型iPad ProもM1プロセッサーを心臓部に擁すれば、此の点に於いては期待に違わぬ性能を発揮すると思われ、其の如き世評の浸透も有ってか受付状況も上々で半導体不足も有るにしろ、既に数ヶ月待ちの様相を呈していると漏れ聞きます。

投稿日:
カテゴリー: Mac

アップル社にMacBook Air 2013のバッテリー交換を依頼する

遅蒔きながら2018年7月5日に macOSSierra から High Sierra にアップデートしてなお意気軒昂、 ストレージなどは何故か余裕が出て、 五年選手となってもまだまだ第一線で活躍してくれるアップル社のMacBook Air 2013には唯一弱点がありました。 バッテリーです。 頃日頓に弱り出したバッテリーは様々な不具合を惹起します。 勿論、絶対的充電容量が減るために外出時に駆動時間も比例して減ります。 起動時には電源アダプタを繋いでいないと其の儘落ちてしまうのも屡々で、外では大いに弱らされます。 一度は起動時の不安定さにデータが飛んだと勘違いしてタイムマシンからの復旧を図ってしまったりもしました。 また残り僅かな充電量では作業中まま急に落ちてしまうのも困りものです。

バッテリーの状態の確認

メニューバーから確認したMacBook Air 2013のバッテリーの状態

MacBookではメニューバーのバッテリーアイコンからバッテリーの状態を確認出来ますから実行すれば、 間もなく交換 と表示されています。 またアップル社のサポートページには Mac ノートブックのバッテリーの充放電回数を調べる なる情報が有り、此れに従って バッテリーの充放電回数を調べる と手元のMacBook Air 2013の充放電回数は 1,093回で、同サポートページに掲載される 充放電回数の上限 表を見れば MacBook Air (11-inch, Mid 2013):1,000 と有る、1,000回を既に超えており、 バッテリー交換は既に必須の状態と考えた方が良い様です。 因みに同サポートページには MacBook Air のモデルを識別する 方法の掲載されたページへのリンクも貼られており、 以下の方法でシリアル番号、機種 ID、部品番号を確認出来るので、 アップル社へバッテリー交換を依頼するにしても、 自力でバッテリーを購入し交換するにしても事前に調べておいた方が良いでしょう。

  • 「この Mac について」ウインドウ
    大半のバージョンの macOS では、コンピュータのシリアル番号とモデル情報を「この Mac について」ウインドウで確認できます。
  • MacBook Air 本体の表面
    MacBook Air の蓋を閉じて裏返します。シリアル番号は、本体底面の規格マークの近くに印字されています。
  • 購入当初の製品パッケージやレシート
    MacBook Air ご購入時の製品パッケージがお手元にある場合は、パッケージのバーコードラベルにシリアル番号が記載されています。
投稿日:
カテゴリー: Mac

HTTPS化したGitHubページのドメイン設定に於けるCNAME運用をCloudFlareで実施する

バージョン管理のクラウドサービスとして台頭し、 先日マイクロソフト社に買収されて話題になった GitHub では、リポジトリをホームページとして公開出来、 頃日にはHTTPS化もワンクリックで可能となったのを受け、 本ブログに記事をものしたのは2018年6月30日でした。

独自ドメインのgithubページをHTTPS化する

さて、此のホームページは GitHub のリポジトリですから Git に依るバージョン管理が可能なのは勿論にて、 むしろ其れでこそ此のサービスを利用する旨味があるのでした。 ローカルでホームページを編集し、 add して commit した上でリモートの GitHubリポジトリに push すればホームページはバージョン管理されながら更新される訳です。

GitHubからの警告メール

処で2018年6月30日の記事の如き設定では問題が惹起されます、 と言うのも GitHubに pushする度に GitHubから Page build warning と題目された警告メールが届くのでした。 其の内容は以下のようなものです。

The page build completed successfully, but returned the following warning for the `gh-pages` branch:

Your site's DNS settings are using a custom subdomain, fuga.hoge.com, that's set up as an A record. We recommend you change this to a CNAME record pointing at [YOUR USERNAME].github.io. For more information, see
Using a custom domain with GitHub Pages
.

大約、 ホームページのビルドには成功しているが、 独自ドメインの設定にAレコードを使っているから、 CNAMEレコードに設定変更してもらえまいか、と言う内容です。 詳細は以下参照との警告メールのリンク先の User Documentation を閲すれば項目名が並びなかなか要領を得難くもあるようですが、 兎にも角にも警告メールには custom subdomain なる文字列が見られますから、 項目の一つを開いてみます。

投稿日:
カテゴリー: git

Swiftでタプル要素で構成される配列から特定のタプルを削除する

データの保ち方については常に頭を悩ませ、試行錯誤する処です。 今回は手元のプログラムの進捗上、異なる型を一まとめにしたデータ単位を配列にして保たせようと試みました。 異なる型を一まとめにするとなると開発環境はiPhoneアプリを拵える為のプログラム言語 Swift では Tupleタプル が適当と考え採用しました。 クラスから生成した一つ一つのインスタンスのデータを其々タプルにまとめ、 其れ等タプルをまとめて配列で扱おう、と言う目論見です。

Swiftのタプル型

あちこち食堂(仮題)開発途中画面
あちこち食堂(仮題)開発途中画面

動的なデータの保たせ方としてタプルのみで構成された配列を採用したのには、 タプルと言うデータはな不可変長ではありますが、 要素に型を混在させられるので、 型の異なる要素をひとまとめにしたい時は便利である、と言う理由です。 Swiftのタプル型については はじはじアプリ体験記 の以下のリンク先ページが役立つかも知れません。

【Swift】タプルの使い方。タプルの宣言と値の格納、取得方法

独自ドメインのgithubページをHTTPS化する

以前はホームページを持つのはなかなか難儀な話でしたが、 インターネットサービスの充実した頃日ではホームページを保有するサービスが提供されるのは無料でさえ枚挙に暇が有りません。 中にもITの専門家を中心に近年人気を博しているのが githubページ でしょう。 先日Microsoft社が買収して話題になった github 提供のサービスです。

GitHub上の所謂ホームページ

githubが本来提供するのはバージョン管理のクラウドサービスですが、 基本的にはテキストファイルのプログラムソースのバージョン管理としては、 ホームページを記述するための言語、 HTML でも変わりありません。 するとgithubに預けたオンライン上のhtmlファイルに於いては、 後はWebサーバーだけ宛がってやればブラウザで閲覧可能となり、 立派なホームページの一丁上がり、と言った塩梅です。

無料での提供ではリポジトリが公開必須となりますので、 ソースは誰でも閲覧可能になる、と言う制限付きですが、 基本的にはソースは誰でも見られる静的なホームページでは問題にする迄もないでしょう。 裏技と迄は行きませんが、ローカルリポジトリにCMS的プログラムを以て静的ページを構築し、 其れをgithubリポジトリにpushすれば動的サイトの公開も可能の理屈となります。 勿論、非公開が可能な有料サービスも検討する価値はあるものです。

投稿日:
カテゴリー: git

MacBook Pro2016のTime Machine導入記

2016年々末に入手した Macbook Pro 2016 Late 13インチ も既に一年半を閲しますが愈々役立ち特に iPhoneアプリ作成 に於いては無くてはならぬツールとして活躍してくれています。

必然となったmacOSのアップグレード

処で一週間程前、日本時間の2018年6月5日早朝に催されたWWDC2018では時期macOSたる Mojaveモハベ) が紹介されましたが、現行のmacOS High Sierra にさえアップデートせず、入手以降 Sierra のまま過ごして来ました。 しかし遂にアップデートを余儀なくされる事態が惹起されました。 XcodeがmacOSのアップデートなしには最新のバージョンへのアップデートが不能となってのです。

macOS High Sierra無料アップグレードの案内とApp StoreにSierraでは互換性のないと明示されるXcode.9.3
macOS High Sierra無料アップグレードの案内とApp StoreにSierraでは互換性のないと明示されるXcode.9.3

しかも手元の検証用のiPhoneは最新のiOS.11.3へとアップデートして仕舞えば、 古いバージョンのXcodeからは実機転送が不能となりました。 なかなか、セキュリティー上芳しからぬ評判のあったとはいえ、もう充分時間も経ち 問題も低減しているでしょう、 macOSアップデートに如くはなし、と実行を目論むに当たり、 若しやの際に備えて充分なバックアップ体制を用意せんものと、 Time Machineの導入に至ったのでした。

本記事は実際にMacBook Pro 2016モデルにTime Machineを導入した 2018年4月18日から2018年5月6日の経緯を、 孰れまた導入の機会もあろうことを鑑み、 備忘録として書き残し、シェアするものです。

投稿日:
カテゴリー: Mac

Swiftで行列を鑑みた多次元配列を宣言、生成する

プログラムに配列は欠かせず、 iPhoneアプリのゲーム開発に於いても其れは変わらず、 併せてゲーム内のデータ保持に行列を用いたいとなれば必須事項ですが、 型に厳格な言語 Swift 上の話でもあれば、 実行しようと思うもなかなかに難儀で、 エラーを頻発させるも諦める訳にも行かず、 何とか形になった経緯を本記事に記しおくものです。

アプリあちこち食堂(仮題)に於ける多次元配列を可視化した開発画面
アプリあちこち食堂(仮題)に於ける多次元配列を可視化した開発画面

求める2次元配列の形

自らの策定した仕様の要請に依れば手始めに 以下の如き2次元の行列を鑑みた Bool型の2次元配列を生成したくあります。

10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
10000000000001
11111111111111

処が先ず以て、 Xcode は此の宣言さえ許してくれません。 下手に宣言すればビルドは通るものの、 走らせると配列forループでお馴染みのエラー Fatal error: Index out of range が吐き出されて止まってしまいます。

どうもネットを繰るとteratailに以下の様な遣り取りが見付かり…

Xcode開発に於けるfloat型やdouble型の値の余剰

ゲームの代表的存在でもある任天堂社のスーパーマリオブラザーズを始めとして、 特にレトロな2D横スクロールアクションゲームでは無限スクロールは必須の機能です。 本ブログにも横スクロールの実装について記事を幾つか配信しもしました。

2DゲームフレームワークSpriteKit

ゲームうさ犬が行く開発中画面
ゲームうさ犬が行く開発中画面

XcodeでiPhoneアプリでも2Dゲームを開発するに当たって 有用なのがアップル社謹製フレームワーク SpriteKit です。 このフレームワークには様々なゲーム実装に関する機能が搭載されていますが、 座標もその一つです。 SpriteKitの座標に関してはUIViewと座標系が異なるため、 困惑する場合も多いのですが2D画面を構成するには欠かせません。

問題惹起

手元の開発iPhoneゲームで いつものようにSpriteKitの提供する座標系 SKView を用いている途中、気付いた点がありました。

Spritekitを利用したゲームAIの実装改

ディープラーンングなどは及びもつかないものの、 iPhoneアプリにゲームとしてユーザーをもてなす以上、 規模は小さいながらもユーザーの入力に対する反応を返すアルゴリズムを用意すべし、 とて此れを ゲームAI として手元の開発ゲーム バルーンズ・オキュパイ への実装の取っ掛かりを記した記事が2017年10月6日に本ブログに配信した以下の記事でした。

Spritekitを利用したゲームAIもどきの実装

ゲームAI擬きの改善

本記事には此の前記事に紹介したコードを今一歩進めた考察を記す処です。 其の要件としては前記事に於いては キャラクターの出現ポイント検出の処理と移動の処理を任意単位時間、2秒に1回 としており、 此れを同時に処理していたのでユーザーの待ち時間が多くてゲームとして成り立たないので 此れを解決したい、と言うものです。 従って任意単位時間の取り扱いについて考える必要があります。 本ブログには此れに関して2017年10月24日に以下の記事を配信しています。