iPad mini 6世代 を購入

はじめに

iPad mini6を新品購入しました。

私の使い方

私の場合、用途は下記が大半です。しかも寝ながら。

  • 漫画、小説を読む
  • ゲーム
  • Youtube動画視聴
  • ウェブ閲覧

寝ながらなので、軽いタブレットがよく、iPad miniのサイズと重さがちょうど良いです。 漫画も見やすいですし。

見積もり

はじめに

ソフトウェアの受託開発を行っていると、開発費を見積もる作業を任されます。 開発をするということは現在そのソフトがないわけで、規模を見積もるなんて「予測しろよ」と言われているに等しいのです。

赤字のリスクを減らすためには既存の経験をもとに「これ以下で開発ができるだろう」と見積もります。 もちろん、会社によっては定量的な指標がある会社もありますが、それでも「予測」には違いありません。 しかし、プロジェクトリーダーは見積もらねば仕事が来ません。

愚痴

見積もりですが、これは厳しいですよ。  ・見積もり期間は1〜2週間程度  ・知らないソフトの規模を出すためには大まかな機能設計がないと見積もれない。  ・見積もるのは一人   見積もりを複数人で行うこともありますが、同じ機能を複数人で意見を出しながら見積もることは少ないと思って間違いありません。  「だって複数人で意見を出し合う時間がないし、予測した規模は三者三様だし、だいたい機能設計も三者三様だし」

ベテランが数人集まって意見を出しながら規模を決めていくなら責任は分散されますが、 大半はプロジェクトリーダーが一人で見積もり、それを上級管理者が「ダメ出し」して調整する、という感じです。 上級管理者が設計をするわけではないのがミソ。あくまでプロジェクトリーダーが出した見積もりをみてリスクを指摘するだけ。

ある設計にすると1人月だけとプロジェクトリーダーが考え、見積もりを1人月として出す。上級管理者はその見積もりを見てあれこれリスクを指摘し、結果、2人月で顧客に提示。

ところが受注ができ開発の段階で見積時の設計が甘くて結局3人月掛かる事になった。   そのときに最初に怒られるのはプロジェクトリーダーです。こんな理不尽な。「なんでそんな設計にしたんだ!」と。

確かに製造に入れば5人、10人と人をプロジェクトに入れるでしょう。でも設計概要を考えたのは1〜2週間で考えたプロジェクトリーダーです。設計を間違えるなんて当たり前じゃん。わかるわけ無いじゃん。

機能設計が間違えれば規模が大きく変わる、そんな責任を短期間でプロジェクトリーダーが負うことになります。

「そんな短期間で正しい設計なんてできるわけなかろう!!」と怒鳴りたい。

最後に

世の中のソフトウェア受託開発のプロジェクトリーダーはこんな恐怖を味わっていないでしょうか? 私の会社だけですかね?見積もりは一人でしている会社。

SONY WF-1000XM4購入・レビュー

感想

私は他にもゼンハイザーのMoumentum True Wireless 2やApple AirPods Pro、AVIOT TE BD21j-pnk、SONY WF-1000XM3を持っていますが、ついつい新商品のSONY WF-1000XM4を購入してしまいました。

音質以外で良いと思った点は以下のとおりです。

  • WF-1000XM3に比べてデザインが丸めで良い
  • 同じく、WF-1000XM3に比べて全体的にサイズが小さくなった
  • LDACに対応

音質では以下のような感じです。オーディオ素人ですが参考にしていただければ幸いです。 - 良くも悪くもSONYの音。安心して聴ける。変な雑音や耳が痛くなるような強い音もなく心地よい - 音の解像度はMoumentum True Wireless 2といい勝負かな - WF-1000XM3と比べてやや迫力がない。疲れないとも言える - (ノイズキャンセルが変。右側だけ雑音がひどい。多分、初期不良なので感想は割愛) - 音楽が流れていないときの静寂性は、WF-1000XM3よりも静か。(ノイズキャンセル無効時の話) 耳の密閉性が上がったのかな。

総評

私の評価は高いですね。メインになるかも。

オープンソースについて

開発せずとも欲しい機能が手に入る・・・が。

世の中にはソースコードさえも公開してくれるオープンソースプログラムがたくさんあります。 このおかげで企業も個人も安価に必要なシステムが手に入ります。先人には感謝しきれないですね。

次からはソフトウェア開発者の立場から述べますね。

ありがたいのはありがたいが・・。保守の見積もりが難しい

例えば分かりやすくお客様からあるシステムを受託したとします。 そのシステムはLinux上で動作するアプリケーションだったとします。

納品して半年後、Linuxにセキュリティ脆弱性が見つかってパッチが公開されたとしましょう。

当然、お客様はバージョンアップを早くしたいわけですが、受託したソフトウェアベンダーとしては困るわけです。

  • 動作確認ができていない
  • Linuxのシステムをすべて把握しているわけではないので、納品したシステムへの影響もわからない
  • パッチの正常性をだれも保証していない(ということは何かがあればベンダーが責任を取ることになる)
  • システムの正常確認をすると1〜3ヶ月かかる。。。。そんな検証稼働をすぐには確保できない

もちろん、ベンダーが採るべき選択肢は「検証するのでその費用がほしい」と顧客に伝えることですね。

ところがです。通常、上記のような大規模システムの場合は「年間保守」という契約を年間で結んでいます。なので、追加費用の催促などほぼ通らない。追加費用を請求するならば、「年間保守」とは違う説明を顧客にしないとだめなわけです。

そんな説明ができるぐらいなら苦労はしませんよ・・・。知らないLinuxのソフトウェアのバージョンアップでの影響範囲がわからないのに。

Redhat Enterprise Linuxとかにすれば? ・・・とおもうでしょ?

思うは思いますが、それだと保守費用が馬鹿にならない上、ベンダーで開発したソフトウェアへの影響は流石にRedHatチームでもわからない。あんたのところで開発したソフトへの影響なんて知らん、と言われてしまいます。 ので、適切なアドバイスは望めないでしょうね。

さいごに

上記のような苦悩は受託開発をされている企業の開発者ならば誰もが経験をするのではないでしょうか。

ドラマ・ナイトドクターの感想

ネタバレになるので注意を!

感想

面白いかどうかを総括して言うと面白いです。

ただし、内容はちょっと好きではないです。 ストーリーは言えませんが、 救命医がやったことは犯罪なのですが(本来、行政的に手術してはいけない子供を強引に手術した)、それをなぜか救命医の判断が正しい美談だ、となる意味不明なストーリー。

あれ、番組は間違った正義を視聴者に押し付けているんじゃないかな。と、私個人は納得できませんでした。

macOS Big Sur + ESETで不具合?

スリープからの解除が異常に遅い

MacBook のBIg surからスリープからの復帰時に高確率で立ち上がりが遅い事象が起こります。 ・スリープから解除しているのに画面が真っ黒なまま数分、表示されない ・5〜10分ぐらいすると立ち上がるが、その後もFinderを触るたびにカーソルが回転 ・カーソルが回転している間、何も操作ができない状態。これがまた5分〜30分続く

上記の事象がでたので、ネットで色々調べました。で、今のところの解決策が見つかったので書きます。

当方の環境

Macbook M1 13インチ ウィルス対策にESET Cybersecurity pro NASを利用、TimeMachineを使用 Adobe Cloud Strage使用

原因を推測!

Finderを触ると回転が始まるため、Fileアクセス関連でなにか処理が止まっていると思いました。 また、過去にも同じ話があった悪名高いESETがファイルアクセスと干渉していると想定されました。 最近のmacOSはフルアクセスを原則禁止しており、ESETには手作業でフルアクセス許可することになっております。このため、ESETのリアルタイムファイルシステム保護(こいつはファイルアクセスをしまくるから)と関連しているんだろうと推測しました。

ESETはBigSur対応(M1対応)がかなり遅く、しかもリアルタイムファイルシステム保護機能以外で暫定リリースしましたからね。BigSur登場後、3ヶ月以上も経ってから正式版がリリースされました。

このため、疑うは、NASWebDAV)、Adobe Cloud Storage、ESETリアルタイムファイルシステム保護これらのいづれかが悪さをしているのではないかと推測しました。

対策案

ESETに行き着くまで色々、試しました。 そして、ESETのリアルタイムファイルシステム保護を無効にして実験。 数日試してみましたが改善!

じゃあと、リアルタイムファイルシステム保護は有効にして、一部のオプションを無効にして試してみました。 無効にしたのは以下の4つのオプションです。  ・検索するメディア - 「リムーバブルメディア」           - 「ネットワークメディア」  ・検索のタイミング - 「ファイルのオープン」           - 「ファイルの作成」

これで数日試してみましたが、安定しました! もう少し、試してみます。

追記 2021.8.19

安定しています。あれから一度も事象が発生していません!!

皆さんも、もし同じような環境で同じ事象が発生していたら、お試しください。ただし、セキュリティ対策は自己責任でお願いします。

ソースコードの変数名規則

いつも迷う変数名

プログラマーはいつも見やすいソースコードを書くことを心がけています。

ですが、いつも迷うのが変数名の命名規則

もちろん、会社や部署、チーム、あるいは開発言語によって命名規則が決められていることが多いです。が、それでも迷う。

技術的にはいくつか種類があるので紹介します。

単語の区切り方で種類がある

  • キャメルケース 例)firstTime 単語の頭を大文字にする

  • パスカルケース 例) FirstTime キャメルケースのうち、戦闘の単語も大文字にする

  • スネークケース 例)first_time 単語の間をアンダースコアで結ぶ

変数の命名の色々

  • 先頭に変数型を示す文字を入れる 例)iCount, strMyName(整数型にはIを。文字列型はstrを付与しているのが特徴)

  • 先頭にスコープ(関数内の変数、グローバル変数、等) 例)g_iNewCount(gをグローバル変数であることを示していて、iは整数型)

他にもたくさんありますね。

私の場合は・・・

私がC++言語プログラムを書くときの変数名の付与は、(部署やプロジェクトで決められていなければ) キャメルケースで、かつ、ローカル変数の場合は「m_」を付与します。

例) int m_textCount;

「m_」はクラスのメンバ変数で、memberのmを意味しています。 これ、昔のオブジェクト志向言語ではよく使われていた記法です。古い人間なので未だにこれを守っています。

実はキャメルケースって見辛いことがあります

関数の行数が大きいようなソースコードではキャメルケースは読みづらくなることがありますね。

例えば、キャメルケースとスネークケースを比較してみましょう。スネークケースのほうが見やすくないですか? 文字が密集しているとキャメルケースやパスカルケースは読みづらいと感じることがあります。

int X1LinesOfNewArea, Y1LinesOfNewArea, Z1LinesOfNewArea; int X2LinesOfNewArea, Y2LinesOfNewArea, Z2LinesOfNewArea; int X3LinesOfNewArea, Y3LinesOfNewArea, Z3LinesOfNewArea;

int x1_lines_of_new_area, y1_lines_of_new_area, z1_lines_of_new_area; int x1_lines_of_new_area, y2_lines_of_new_area, z2_lines_of_new_area; int x1_lines_of_new_area, y3_lines_of_new_area, z3_lines_of_new_area;

結局は?

結局、どれがいいかは決まっていません。世の中のプログラムでもあまり断言はされていないと思います。 ただし、

Microsoftが推奨している形式やGNUソフトウェアでよくかかれる形式があるので、 開発環境に即して合わせてみると、コードを読んだお客様や友人に「あ、こいつ、ちゃんとMicrosoft(あるいはLinux)の規則を守って書いているな!」と思ってもらえるはずです。 汚いと思ったコードをよく見ると変数名の命名規則がメッチャクチャなことが多いのです。