「せばな」は言わない

綱の上を歩いたり、壁を登ったりする田舎のプログラマーのおはなし

【Mac】macOS could not be installed on your computer. (high sierra)

f:id:tk_thunder:20171122054352j:plain

help ! high sierra install failed "macos could not be installed on your computer" | tonymacx86.com
より画像引用

昨晩、突然の悲劇が僕を襲った。

メインで使用しているMac Book Airにタイトルのようなメッセージが表示され、OSの起動が途中で止まってしまうのだ。
何度再起動しても同じ現象。さっぱりわからない。

もう4年くらい使っているマシンなので、「逝ったか…(遠い目」と現実を受け入れようとする。

しかし、今までメインで使用していたデスクトップのWindowsマシンがお逝きになってから、非力ながらも開発を支える相棒となっていたMacに逝かれるのは辛い。

新PC購入のために貯金している今はあまりにもタイミングが悪すぎる。

とにかくなんとか出来ないかとググってみると見事に海外の投稿しか出てこない。

「つらたん…(白目」

しかも、殆どの投稿が「high sierra」にインストール中に発生しているらしい。僕はすでにインストールも成功して、絶賛稼働中なのだ。
せめて同じ状況の人がいればいいのに…

まぁ何か参考になるかなということで、セーフブート(起動時にShift押しっぱ)で起動すると普通に起動してしまう

「あれ…起動した」

ディスクユーティリティで調べても、メインのディスクは問題なさそう。

もしかしてと思って、再起動する。通常起動させると問題の画面が表示される。
画面を何度かクリックすると、上部にメニューバーが表示される。アプリケーション名を見るとインストーラーが起動しているっぽい。
アプリケーション名の部分をクリックして、インストーラを終了させると直後に大量のインストールログが表示。

その後、メインの起動ディスクから起動する旨の選択をして再起動する。

プログレスバーが100%ロード後に表示されたのは親の顔より見たいつもの画面。

「やったー!なんでインストーラが起動したのは謎だけど何事もなかったー!!!!」

と大喜びする朝5時過ぎのことでした。

そろそろMacも新調しないと行けないのかなぁ…また悩みが増えました。

【不定期連載】BOSSと僕 #楽しそう【4行目】

これは、真と偽の狭間にある日常の一コマ
※体験談ですがものすごく脚色してますのであしからず

登場人物
僕(TK)・・・筆者
BOSS・・・僕のボス

BOSSは本当に楽しそうに仕事をする。

時々疲れた表情を浮かべるけれど、いつでも楽しそうだ。

僕「BOSSは本当に楽しそうに仕事をしますよね」

思ったことをそのまま伝えたことがあった。

BOSS「あら、そう?」

僕「はい。イキイキしていると思います。」

電話をかけるときといい、僕にプログラムを指南してくれるときといい「ハッハッハー」という笑い声が絶えない。

BOSS「だって上に立つ人が楽しそうじゃないと、部下が同じように働けないでしょ」

そんな風にさらっと言ってのける。

カッコよすぎる。

【C#】yield return

yield returnの使い方の一例を教えていただいたのでメモ。

WIndowsフォームアプリケーションなどでフォーム上のコントロールを全て取得したいときなど。

public IEnumerable<Control> GetAllCollection()
{
    foreach(Control ctrl in Controls)
    {
        yield return ctrl;
    }
}

再帰呼び出しは下記の記事を応用すれば可能。
mseeeen.msen.jp

【不定期連載】BOSSと僕 #whileの3重ループ【3行目】

これは、真と偽の狭間にある日常の一コマ
※体験談ですがものすごく脚色してますのであしからず

登場人物
僕(TK)・・・筆者
BOSS・・・僕のボス

BOSS「TK君には現在、社内で稼働しているツールの改修を担当してもらうことになる」

僕の最初の仕事だった。VBで書かれたツールのリファクタリングだ。

TK「承知しました。」

僕は快諾した。このツールには問題があった。
オブジェクト指向が適用されておらず、冗長な箇所がいくつもあること。
何年も前から機能を継ぎ足していることで重複した機能が存在すること。
インターフェースが統一されていないこと。

BOSS「一つずつでいいから、リファクタリングをお願い」

僕はDB周りはさっぱりなので、オブジェクト指向の勉強と兼ねてまずはコードの解析からスタートした。
そこで目にしてしまったのだ…忘れもしないwhileの3重ループを。
厳密には下記のようにカオスなものだ。

while
{
  while
  {
    while
    {
      while{}
      while{}
    }
  }
}

僕「ヒェッ…」

僕はすぐさまBOSSに事の次第を報告する。

BOSS「TK君、だから私は中身を見たくなかったんだよ…」
大きなため息をつきながらBOSSは呟く。
件のツールはBOSSが開発したものではなく、別に開発者がいる。

TK「できるかぎりやってみます…」
僕も力なく返答する。

BOSS「何かあれば相談して。力になるから」

TK「はい…」
こうして壮絶なリファクタリングが幕を開けたのだった。

後日。BOSSから下記の書籍が差し入れられた。

オブジェクト指向でなぜつくるのか 第2版

オブジェクト指向でなぜつくるのか 第2版

【Python】Jupyter Notebookを触ってみた

ニューラルネットワーク参考書にJupyter Notebookを使用する章をが出てきたので、開発環境にインストール。

Jupyter Notebookとは?

Jupyter Notebook (読み方は「ジュパイター・ノートブック」または「ジュピター・ノートブック」) とは、ノートブックと呼ばれる形式で作成したプログラムを実行し、実行結果を記録しながら、データの分析作業を進めるためのツールです。
Jupyter Notebook を使ってみよう – Python でデータサイエンスより引用

参考ページはWindows環境にAnacondaを利用してPython、Jupyterをインストールしているが僕は既にPythonはインストール済み。

なので、下記でJupyter Notebookのみインストールしました。

pip3 install jupyter notebook
※python2系、3系共存環境にて3系を使用しているためpip3
※片方のみしか入っていないならpip install〜

今はテキストエディタのAtomでコードを書いてJupyter Notebookに貼り付け→実行しています。

結構便利そうですね。
qiita.com

【Python】Pythonの仮想環境を構築するときのメモ

Pythonのパッケージをインストールする際、プロジェクト毎に管理しておきたい節がある。

グローバルな環境にパッケージをインストールしても毎回利用するわけではないので。

その際に、Pythonの仮想的な環境を構築してそこへパッケージをインストールすることで参照の範囲を限定する。

やり方は様々あるが、僕が最初に学んだ方法をメモする。たまにしかやらないからいつも検索する羽目になるので…


1.仮想環境構築
プロジェクトを作成するフォルダへ移動して下記を実行。

python3 -m venv (project_name)

2.仮想環境をアクティベート
作成したプロジェクト内に移動して下記を実行

source bin/activate

3.確認
仮想環境が実行されるとコマンドラインの頭に(プロジェクト名)が付加される

4.仮想環境の終了
仮想環境実行中のプロジェクト内で下記を実行

deactivate

【不定期連載】BOSSと僕 #初めての糖分 【2行目】

これは、真と偽の狭間にある日常の一コマ
※体験談ですがものすごく脚色してますのであしからず

登場人物
僕(TK)・・・筆者
BOSS・・・僕のボス

BOSS「TK君、午後3時を回った今、自分に足りないものは何か自覚してる?」

背後から唐突な問い。確かに本日の進捗は芳しくない。
僕はおそらく大多数のプログラマーからみれば些細な問題で躓いていた。
その質問を注意の意味で受け取った僕は、

僕「試行でしょうか。一つの手法にとらわれず他の方法を探らないと…」
と、大真面目に返す。

BOSS「違うな」
一瞬で否定される。
それでは一体なんだというのだろうか…
立て続けにBOSSは言う。

BOSS「糖分だよ」
そう言ってBOSSは僕にアメを差し出す。

僕「あ、あ、ありがとうございます」
予想の斜め上をいく回答に困惑しつつアメを受け取り、口に運ぶ。
入社間もなかったので、緊張も一気に和らいだ。

糖分は大切と知った。


カンロ 金のミルクキャンディ 80g×6袋

カンロ 金のミルクキャンディ 80g×6袋