購入後おそらく15ヶ月ぐらいだと思うけど、ローバッテリー表示がiPhoneに表示されました。
電池はCR2032なので、概ね妥当と言えば妥当。使い方で変わってくると思いますがBLEだろうから、それほどの差は出ないでしょう。
P.S.
電池の解放電圧が2.9Vぐらいだったから、他(歩数計)でも使い用がないレベルに放電してました。
admin

la vie libre
M1 MacBook Airのtimemachine editorはログインしていないと自動起動しないのでなぜかを調べてみた。
こういう風に設定、つまり毎日朝の5時にリブートして、5時半からタイムマシーンを起動させたい。しかしその時は起動しないで、MacBook Airにログインしてから、timemachineが起動する。
M1 MacBook AirにはPower Nap機能の設定がない、デフォルトでオンになっているらしい。以下はIntel Macの設定画面。
timemachine editorのFAQから、
① timemachine editorの常駐は不要、まあログインしてないんだからどちらにしろ無意味
② power napはオンにしろ、ただしapple siliconのモデルはデフォルトでオンになっている
どちらも満足されている筈ですがね。
以上の現象からは、回避するならばバックアップを先に実行してリブートを後回しにすれば良いだろう。
admin
という内容のメールが来て何だろうなと思いましたが、おそらくsakuraで使っている無料の証明書関連だろうと思って調べると確かにそうです。
サービスを受けている側は何もやらなくてもいいけど、アップデートされたagreementは読めとあります。agreementへのリンクは、
https://letsencrypt.org/documents/LE-SA-v1.3-September-21-2022.pdf
関連しそうなsakuraからのメッセージは、
https://ssl.sakura.ad.jp/column/letsencrypt-root-certificate/
になるでしょうか。
admin
Apple silicon用のVMとして無償のUTMもapple silliconで使えるようなのでインストールしてみた。結論はデスクトップ画面ではログオンできない。–> 部分解決(please refer to the bottom)
https://original-game.com/how-to-install-ubuntu-on-m1-mac/#m_heading-3
https://oopsoop.com/ubuntu-on-mac-using-utm/
https://qiita.com/doraryu1/items/f79ab67b4c7b060a0917
を参考にインストールした、デスクトップ環境インストールは、
$ sudo apt install tasksel
$ sudo tasksel install ubuntu-desktop
ではインストール始まらなかったので、以下(デスクトップ化するための参考サイト(日本語が変だから翻訳サイトらしい))を参考にaptコマンドで対応
https://codepre.com/ja/como-instalar-un-entorno-de-escritorio-gui-en-ubuntu-server.html
$ sudo apt install ubuntu-desktop
これで、デスクトップ画面は出たけど、ログインができないし、パスワード入力後のログイン画面でハングしてしまうこともあるようです。
英語キーボードだし、caps lockも掛かってないけど不思議、M1 Macだから未だ不安定なのかもしれない。サーバーモードでは普通に使えるようですが。
デスクトップモードでログオンするか、CUI(サーバーモード)でログインするかはUTMの設定で切り替えできるから、サーバーモードで立ち上げればいいのだけれども。
P.S.(2022/7/26)
UTMのセットアップで”Emulated Display Card”を”virtio-ramfb”から”virtio-ramfb-gl(GPU Supported)”に変えたら起動した。変更理由はGPUサポートだよなと思ったから、他の選択ではエラーメッセージ出て起動しなかった。
見慣れた画面ですが、違和感あるのはFirefoxが見えないこと。
ただし、デスクトップに無いFirefoxをインストール
$ sudo apt install firefoxしても起動しないし、chromeは”you have held broken packages”と言われてインストールできないからまだ未解決問題は残ってます。
admin
性能のほんの一面ですが、素数計算プログラムで3モデル(2018 Air(8GB/Dual core)/2019 Pro 16(16GB/i7)/M1 Air(16GB/M1)をベンチマークしてみました。
使用したプログラムソースは以下のリンクから。一千万と一億までの素数を求める時間を算出しています。
https://github.com/chateight/c-plusplus/blob/master/m_thread.cpp
結果は巷の情報通り(ほぼIntel Macの16インチ並みで、2018 Airからは数倍の性能)と言えますか。SSDの性能差は見えていなくて、CPUとメモリ周りの性能差ですね。
M1系はメモリ管理も改善されているようで、未だM1 MacBookはスワップが発生していません。
同じようにアプリ開いていても、メモリプレッシャー表示レベルが明らかに低い。ファンレスだから静音だし、全てはtsmc 5nmの威力です。
admin
予定(20日〜28日)より早く本日到着、早速セットアップを開始。
M1モデルは右側ですが、外観は同じだろうから見分けはつかない、まあUSキーボードだから簡単に識別できるのだけれども。色違うから、それも識別要素ですが。
16インチと二段重ねしたところ、フットプリントの違いがわかります。
ゼロからインストールは途中ですが、アプリ互換は以下の通り。予想通り Canonの2014年製レーザープリンタはドライバ存在しないし、この先も出てこないだろうから使えない。
言語系と開発環境は設定が必要だから、じっくりとこれから。
印象全般は、電池がめちゃくちゃ持つのと、その結果としてアプリインストールやOS更新でも熱くならない。Intel dual coreの2018年 Airはファンがブンブン回っていたけども。おそらく、長い動画の書き出しとかはスロットリングに入るのだろうけど、そんなことは滅多にやらないし。
体感速度はIntel MacBook Pro 16と雰囲気同等だから十分高速と言えます。
<M1 Macでインストール必要なもの>
(✅:M1 ready, including Universal、🔖:Rossetta2、🆖:対応してない)
<<基本機能>>
✅Chrome
🆖Canon LBP6230 printer driver(8年前のプリンターはやはりダメ)
✅CotEditor
✅DropBox(インストールはしたけど最大3台ログイン制限)
✅Karabiner elements(M1)
✅LanScan
✅Mega
✅OneDrive
🔖PhotoScape
🔖QfinderPro(Qnap NAS管理)
✅Speedtest
✅TimeMachineEditor
<<開発環境とアプリ>>
Arduino IDE:これはVScodeに移行するから不要
✅Blender
✅Clang(インストール済み)
🆖Fusion 360 → 一度は起動したけど、OSアップデート後に起動できなくなった、再インストールもうまくいかないからしばらく放置
🔖FlashPrint(FLASHFORGE 3Dプリンター用)
✅Homebrew
🔖Kicad
✅M5stack USB driver
✅Python(pipじゃなくてconda使うと)
✅Ruby
✅Processing(betaだけどapple silicon対応)
🔖Raspberry pi imager
🔖Scratch link
✅SD card formatter
🔖Smart json editor
🔖Sonic pi
🔖Thonny
✅Unity
✅VScode
🔖Visual Studio(Unityインストールと同時はintel版、個別にはarm版もインストールできる。おそらくUnityのpreferenceで選択すればarm版も使えると思う。)
✅Xcode
🔖マイクラEE
P.S. 2022/7/19
一通り開発ツールも入れてみたけど、Intel Mac時代とは雰囲気がだいぶ違うインストールをしないといけない。アプリのApple silicon対応は開発ツールだと概ね五割と言ったところでしょう。あと一年ぐらいしたら、そこそこ落ち着いてくるでしょうか。
以下は、インストーに当たって参考としたサイトといくつかのコメントです。
○ VScode/pythonのインストール
参照サイト、よく整理されています
https://qiita.com/c60evaporator/items/aef6cc1581d2c4676504
・HomeBrew
上のリンクからHomeBrew本家のコマンドは、
$/bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
とあるからこれを使う
・VScodeもbrewからインストール
・Python関連のツール
パッケージ管理はpipではなくcondaがApple siliconではベターであると、さらに仮想化した方が良いというのでそうしました。
(過渡的でいずれpipに回帰するかも)M1 Macにおいてはライブラリによってpipとcondaの2通りのパッケージ管理ツールを使い分ける必要があるけど、今回はconda(ただしcondaでは存在しないパッケージはある)
○ c++環境
https://zenn.dev/takuho/articles/cea703bde06732
https://qiita.com/cubinglover/items/5b4d05ca0f77c60f1d79
インストール状態でコンパイラーバージョンはc++20になっていたので、いくつかのソースは修正が必要になるでしょう。
○ ruby/rails環境
https://zenn.dev/osuzuki/articles/a535b2840bbea3
admin
<動作環境>
Intel MacBook Pro 16
<メモリ管理>
new int[]方式はメモリの領域管理、特にリリースを自分で管理しなければいけないのでバグの入り込み余地が多いのですが、コンテナクラスを使うことでその可能性を少なくしてくれます。しかし、想像するにパーフォーマンスは落ちるでしょう。ということで比べてみました。
#include <iostream>
#include <utility>
#include <vector>
const int a_size = 1000000*100;
class home
{
int* m_land;
int* cp_land;
public:
explicit home(int size)
: m_land{new int[size] ()}{}
~home() { delete [] m_land;}
home(home&& other);
int* land() const { return m_land; }
int* land_cp() const { return cp_land; }
void copy()
{
cp_land = new int[a_size];
for (int i = 0; i <= a_size; i++)
{
cp_land[i] = m_land[i];
}
}
void v_copy()
{
std::vector v_int(a_size, 0);
//std::vector vc_int(a_size);
//std::copy(v_int.begin(), v_int.end(), vc_int.begin());
std::vector vc_int = v_int;
}
void del()
{
delete [] cp_land;
}
};
home::home(home&& other)
: m_land{other.m_land}
{
other.m_land = nullptr;
}
int main()
{
std::chrono::system_clock::time_point start, end;
start = std::chrono::system_clock::now();
home A{a_size};
std::cout << "A\'s land address : " << A.land() << std::endl;
A.copy();
std::cout << "A\'s cp_land address : " << A.land_cp() << std::endl;
A.del();
home B{std::move(A)};
std::cout << "B\'s land address : " << B.land() << std::endl;
B.v_copy();
std::cout << std::endl;
end = std::chrono::system_clock::now();
double elapsed = std::chrono::duration_cast(end-start).count();
std::cout << "elapsed time : " << elapsed << " ms" << std::endl;
} 追加したのはv_copyメソッドとその中でパターンの変更とcopyメソッド使う使わないはソース(35~38行目、69行目の該当行コメントアウト)で対応。
<実行結果>
① std::vectorで領域確保だけで2秒近く要している
② 領域のパディングは自動と明示である程度の差がある、new int[]は0でしかできないけど、vectorは任意の値で初期化できるのはアドバンテージ
③ コピーは単純コピーが相対的std::copyより早いけど、それでもマニュアルのforループコピーよりもおよそ2倍(std::copyはおよそ4倍)の時間が掛かる
④ std::copyは実行時間最遅
領域サイズ:100MB
<初期状態:マニュアル(new int[])で領域確保とコピー>
A's land address : 0x7fad25700000
A's cp_land address : 0x7fad05700000
B's land address : 0x7fad25700000
elapsed time : 497 ms
<領域確保:おそらく0埋めされるはず>
A's land address : 0x7f8996700000
A's cp_land address : 0x7f8976700000
B's land address : 0x7f8996700000
elapsed time : 2292 ms
<領域初期化値を明示的に追加>
A's land address : 0x7f8549700000
A's cp_land address : 0x7f8529700000
B's land address : 0x7f8549700000
elapsed time : 2518 ms
<別のstd::vectorにコピー>
A's land address : 0x7fc174f00000
A's cp_land address : 0x7fc154f00000
B's land address : 0x7fc174f00000
elapsed time : 3510 ms
<コピーにstd::copyを使用>
A's land address : 0x7f8b68700000
A's cp_land address : 0x7f8b48700000
B's land address : 0x7f8b68700000
elapsed time : 4396 ms
便利・セキュアさと処理時間は相反するというのは、まあそんなものでしょうか。
ソースは、
https://isehara-3lv.sakura.ne.jp/blog/2022/07/13/右辺値参照の代表的使い方である移譲処理でのパ/
の記事に追加して以下のurlになります。
https://github.com/chateight/c-plusplus/blob/master/move_perform.cpp
P.S. @2022/7/21
M1 MacBook Airで同じ処理実行させると処理速度が全く違う。いずれのケースでも1秒以下(700ms程度)で実行されるから、その差はなんだろう?
そのままのソースではコンパイルできないので、#include <chrono>は必要でしたが、それは本質ではない。
可能性としては、コンパイラーのバージョンぐらい(c++11 vs c++20)なのか?MacBook Pro 16のコンパイルオプションを-std=c++20にしても変わらないからそうじゃないよね。だとすると処理系の差?
admin