macOS Mojaveへのアップデートが固まる

macOS Mojaveに早速アップデートをしました。

公開されてすぐなのでかなりのリスクを覚悟して、バックアップ後にMojaveへアップデートをクリックし、

しばらく放置していたのですが、OSの起動バーが途中で止まりうんともすんとも言わない状態に。

 

cmd+RでFirst aidとかやってみても変わらず。

仕方がないのでバックアップから復元しました。復元には4時間以上・・・

 f:id:tomtech:20180927184222j:plain

 

 

復元後、再度アップデートを行ってみました。

アップデートの途中で一旦ログオン画面が出て、ログオン後またアップデート画面に変わったのだけれど、

アップデートは正常に終了。

 

普段Active Directoryユーザで自動ログインしていますが、ユーザの設定を見ると制限ユーザに変わり、

“コンピュータの管理を許可”のチェックも外れていました。

自動ログインも“なし”に変わり、再度Active Directoryユーザで自動ログインするように設定したところ、

やはりアップデートは途中で固まる。

 

Shiftキーを押したまま起動する、セーフモードで起動すると自動ログインが無効になるとのことで、

セーフモードで起動したらOSは起動しました。

自動ログインも“なし”にしたところ、正常に使えるようになりました。

 

Active Directoryユーザで自動ログインというのもセキュリティ的にダメダメですが、

とりあえず今の所自動ログインはしないようにしてMojaveを使えるようになりました。

 

Active Directoryユーザでの起動トラブルは、とりあえずセーフモードで起動してみようということで!

MacでBitZeny CPUプールマイニング方法

古くなったMacを使用してBitZenyを

CPUプールマイニングする設定を行いましたので備忘録として残します。

 

1.BitZeny Walletに登録

 BitZeny用の財布ですね。

f:id:tomtech:20180211223825p:plain

ユーザー名、パスワード、Emailアドレスを入力後新規登録を行うと、

自分のウォレットにコインアドレスが登録されます。

このコインアドレスをマイニングした際のアドレスとして登録します。

 

f:id:tomtech:20180211232120p:plain

 

2.マイニングプールにアカウントを登録

自分自身でマイニングするのではなく、協力してマイニングを行うためのプールに登録を行います。

プールは沢山あるのですが今回は、「寛永通宝」を例に登録を行います。

寛永通宝」は画面を日本語化しているのでわかりやすいです。

まずはアカウントの登録を行います。

f:id:tomtech:20180211233234p:plain

 

登録後、ログインしてワーカーの設定を行います。

f:id:tomtech:20180211233605p:plain

 

ワーカーの追加画面で、ワーカー名とワーカーパスワードを任意に設定しワーカー追加を押します。

f:id:tomtech:20180211233858p:plain

ワーカーが追加されると右の画面に内容が表示されます。

f:id:tomtech:20180211234043p:plain

 

ここまででマイニングプールの設定は一旦完了です。

 

3.Macにマイニング環境の設定

 

Xcode Command Line Toolsのインストール

XcodeがインストールしていればCommand Line ToolsはインストールされているのですがXcodeがインストールされていない場合は、Apple Developerにログインしてダウンロードします。

 

f:id:tomtech:20180211235330p:plain

 

検索窓にCommand Line Toolsと入力し、自分の環境にあったものをダウンロードしインストールします。

f:id:tomtech:20180211235311p:plain

 

 

homebrewのインストール

ターミナルで以下を実行

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

Installation successful!  と表示されればOKです。

 

ツールのインストール

ターミナルで以下を実行

$ brew install curl jansson openssl automake autoconf

 

opensslのパスを通します。

opensslのバージョン確認

$ ls /usr/local/Cellar/openssl/

バージョンは1.0.2nだったので以下の内容でパス登録

$ echo export PATH=/usr/local/Cellar/openssl/1.0.2n/bin:$PATH >> ~/.bash_profile
$ source ~/.bash_profile

 

パスが通ったか確認

$ which openssl

/usr/local/Cellar/openssl/1.0.2n/bin/openssl

 

pthreadsのインストール

$ brew tap homebrew/php
$ brew install php56-pthreads

 

4.cpuminerのインストール

BitZeny2.0用のcpuminerをダウンロードします。

github.com

tar.gz版をダウンロードして、解凍します。

$ tar xvf cpuminer-2.5.0z.tar

 

$ cd cpuminer-2.5.0z/

$ mkdir m4

$ cp /usr/local/Cellar/curl/7.58.0/share/aclocal/libcurl.m4 m4

curlのバージョンは環境によって変わる

 

$ echo ACLOCAL_AMFLAGS = -I m4 >> Makefile.am

$ sed -i -e "s/INCLUDES/AM_CPPFLAGS/g" Makefile.am

$ sed -i -e "s/aclocal/aclocal -I m4/g" autogen.sh

$ ./autogen.sh

$ ./nomacro.pl

$ ./configure CFLAGS="-O3 -march=native -funroll-loops -fomit-frame-pointer"

$ make

 

minerd ファイルが出来ていれば完了

 

5.設定ファイル作成

$ vi bitzeneypool.json

 

{
"url": "stratum+tcp:///bitzenypool.work:19666",
"user": "ユーザー名.ワーカー名",
"pass": "パスワード",
"algo" : "yescrypt",
"threads" : "2",
"quiet" : true
}

 

6.マイニング実行

$ ./minerd --config bitzenypool.json

accepted: 1/1 (100.00%), 0.62 khash/s (yay!!!)

などのyayが出ればマイニング成功です。

 

この手順を実行するにあたり以下で勉強させていただきました。

ありがとうございます。

qiita.com

satoshisgarage.tech

bitcamp.jp

 

 

 

 

VirtualBox5.1でのExcelのセルコピペ

MacにVirtualBox5.1でゲストOSにWindows 7 SP1という構成で自分の環境で、

Excel2016やExcel2013でセルのコピーを行うと、100%プチフリーズする。

Excel2016の場合は2〜3分、ひどい時は5分くらい。

Excel2013の場合は数十秒程度。

 

セルの中の文字列をコピーする場合だとフリーズしない。

Excel2007の場合は何とも無かった。

Wordは問題なし。

 

Excelのバージョンの問題かと思い、Windows10に載せ替えるまで我慢しようと使っていたけど、

ふらっとVMware Fusion10 Proを試用してみようと思い、VirtualBoxVMovaでエクスポートして、

動かしてみたらプチフリどころかなんて滑らか!全然問題なし!!

 

VirtualBoxの時はMagic Keyborad,Magic Mouseとも相性が良くなかったのか、

ホイールや矢印キーを1回押すと4,5回押されたような動きをしていたんだけど、

それも解消。

 

FusionでのゲストOSでマルチディスプレイの動きは馴染めない部分もあるけど、

全体的にVMの動作がいい感じなので我慢しよう。

 

VirtualBoxのコピーのエミュレーションに問題あるのかなぁ。

KRACK対策はiPhone7,iPad Pro以降

iOS11.1に入っているWPA2の脆弱性対策の修正だけど、

対象機種がiPhone7,iPad Pro以降だそうで・・・

 

Available for: iPhone 7 and later, and iPad Pro 9.7-inch (early 2016) and later

Impact: An attacker in Wi-Fi range may force nonce reuse in WPA clients (Key Reinstallation Attacks - KRACK)

Description: A logic issue existed in the handling of state transitions. This was addressed with improved state management.

CVE-2017-13080: Mathy Vanhoef of the imec-DistriNet group at KU Leuven

 

support.apple.com

 

え。iOS11がサポートする機種が対象じゃないの。

iPhone6とかiPad miniとかは問題ないということなのか。

うーん。詳細が知りたいが。知っている方いませんかね。

 

2017/12/16追記

iOS11.2でKRACK対策がiPhone6とかiPad mini他にも追加されましたね。

support.apple.com

 

 

Safariで画像が表示されない件(続き)

5月に投稿Safariで画像が表示されない件、バッチリ表示と書いたけれど、

最初は大丈夫だったけど、そのうちまた表示されなくなった。

 

macos High Sierraに期待して、アップデートすれば解決するかなと思ったけれど、

やはりイマイチ。

 

画像が表示できないときはGoogle Chomeを使えばバッチリ見れるんだけど、

SafariiPhoneとHandoffが便利なもので、やっぱりSafariが捨てがたい。

 

もう一度調べるかーと思って調べたら、どうもDNSのような記事を発見。

 

https://discussionsjapan.apple.com/thread/10119922?start=15&tstart=0

 

ルータのIPではなくプロバイダのDNSIPアドレスを入れたら、

90%くらい改善した感じだ。

 

とりあえず使えるようになったかな。

Raspberry Pi3とPicameraでリアルタイム顔認識

Raspberry Pi3とPicameraを使ってリアルタイム顔認識・画像上書きを行ってみた。

内容はもう出尽くした感がありますが、PythonOpenCVを使っています。

いろんなサイトを見てはコピペ実行で作ったのでわからないまま作ってしまったのですが、

コメントを入れながら1行ずつ理解した感じです。

# coding:utf-8

import io
import picamera
import cv2

import numpy as np

# HAAR分類器の顔検出用の特徴量
cascade_path = "/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml"

# カスケード分類器の特徴量を取得する
cascade = cv2.CascadeClassifier(cascade_path)

stream = io.BytesIO()

CAMERA_WIDTH = 320
CAMERA_HEIGHT = 240

color = (255,255,255)

camera = picamera.PiCamera()
camera.resolution = (CAMERA_WIDTH, CAMERA_HEIGHT)

laugh = cv2.imread('laughingman.png', -1)  # 画像の読み込み。-1でアルファチャンネルを付けて読む
mask = cv2.cvtColor(laugh[:,:,3], cv2.cv.CV_GRAY2BGR)/255.0  # 画像からアルファチャンネルだけを抜き出して0から1までの値にする。あと3チャンネルにしておく
laugh = laugh[:,:,:3]  # アルファチャンネルを消したもの

while True:
        camera.capture(stream, format='jpeg')
        data = np.fromstring(stream.getvalue(), dtype=np.uint8)
        image = cv2.imdecode(data, 1)
        cv2.imshow('image',image)
        cv2.waitKey(16)

        # グレースケール変換
        image_gray = cv2.cvtColor(image, cv2.cv.CV_BGR2GRAY)

        # 物体認識(顔認識)の実行
        # image – CV_8U 型の行列.ここに格納されている画像中から物体が検出されます
        # objects – 矩形を要素とするベクトル.それぞれの矩形は,検出した物体を含みます
        # scaleFactor – 各画像スケールにおける縮小量を表します
        # minNeighbors – 物体候補となる矩形は,最低でもこの数だけの近傍矩形を含む必要があります
        # flags – このパラメータは,新しいカスケードでは利用されません.古いカスケードに対しては,cvHaarDetectObjects 関数の場合と同じ意味を持ちます
        # minSize – 物体が取り得る最小サイズ.これよりも小さい物体は無視されます
        # facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=3, minSize=(10, 10), flags = cv2.cv.CV_HAAR_SCALE_IMAGE)

        facerect = cascade.detectMultiScale(image_gray, scaleFactor=1.1, minNeighbors=1, minSize=(1, 1))

        image_output = image
        if len(facerect) > 0:


                # 検出した顔を囲む矩形の作成
                for rect in facerect:

                        # 画像のサイズ調整
                        rect[0] -= min(25, rect[0])
                        rect[1] -= min(25, rect[1])
                        rect[2] += min(50, image_output.shape[1]-(rect[0]+rect[2]))
                        rect[3] += min(50, image_output.shape[0]-(rect[1]+rect[3]))

                        # 笑い男とマスクを認識した顔と同じサイズにリサイズする。
                        laugh2 = cv2.resize(laugh, tuple(rect[2:]))
                        mask2 = cv2.resize(mask, tuple(rect[2:]))

                        # 笑い男の合成。
                        image_output[rect[1]:rect[1]+rect[3], rect[0]:rect[0]+rect[2]] = laugh2[:,:] * mask2 + image_output[rect[1]:rect[1]+rect[3], rect[0]:rect[0]+rect[2]] * (1.0 - mask2)
        cv2.imshow('image_out',image_output)
        cv2.waitKey(16)

        stream.seek(0)

        if cv2.waitKey(10) > 0:
            break

cv2.destroyAllWindows()

参考にさせていただいたサイトはこちら。 そのまんまのコピペで動きました。ありがとうございました。 peaceandhilightandpython.hatenablog.com

pythonのOpenCVでリアルタイムに笑い男 - BlankTar


結果はこちら! f:id:tomtech:20170603161049p:plain

思った通りの内容でした。 横顔の認識は今回読み込んだライブラリではできなかったです。

攻殻機動隊SAC笑い男の書き替え技術スゲーなーとあらためて思ったり・・・

HAAR分類器とかカスケード分類器とかまだまだわかっていない部分が多いですが、 これから中身を見ていきます。

Mac Safariで画像が表示されない件

いつの頃からかMacSafariでサイトを見た時に画像が数個表示されないときがあった。

 

再読込すれば見れたり、キャッシュを削除してみたりしたけど、

Chromeだと正常に表示出来たりする。

 

なんだろうと思いながらだましだまし使っていたけど、

どうにも我慢できなくなって調べたら、

グローバルサインのルート証明書が一時的に失効して2016/10/7の証明書失効リスト(CRL)を、

OSCPのデータベースに取り込んだのが原因とのこと。

 

要はその画像の元が失効しているとして表示できなかったということなのでした。

復旧コマンドはOSCPのキャッシュを削除するというもの。

OS X Sierraの場合、ターミナルを開いて以下を実行する。

sqlite3 ~/Library/Keychains/*/ocspcache.sqlite3 'DELETE FROM ocsp;'

 

ばっちり画像が表示されるようになった。

 

元記事

it.srad.jp

support.globalsign.com