20200225のMacに関する記事は4件です。

Instagram風SNSアプリをつくろう

Ver.1.1 updated @2020/02/25 by Shota Oshiro

完成イメージ

環境

Swift 5.0
Xcode 11.0
Mac OS 10.15.3 Catalina

この記事で学べるスキル

  • 画面遷移ができるようになる

レシピ

  1. プロジェクト作成
  2. CocoaPodsでライブラリの導入

実作業

プロジェクトを作成しよう

Xcodeを立ち上げてCreate a new Xcode Projectをクリック。
InstaSampleを作成しましょう!

CocoaPodsでインストール

NiftyCloudMobileBackendのフレームワークをプロジェクトにインストールします。
一度プロジェクトを閉じてください。
ターミナルを立ち上げます。
まずプロジェクトのあるディレクトリまで移動してください。

cd desktop
cd InstaSample

podfileの作成と編集をします。

pod init
pod fileを編集して保存する

NCMBをインストールします。

pod install

インストールが完了したらworkspaceの方からプロジェクトを立ち上げてください。
これでプロジェクトの作成は終了です。
次回はStoryboardの作成をしていきましょう!

まとめ

参考

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macで日本語版のOverleafを使う

  1. メニュー → コンパイラ → LaTeX
  2. メニュー → Font Family → Monaco (等幅フォントにする)
  3. メニュー → スペルチェック → オフ (日本語ではスペルチェックできない)
  4. 再編集の右の下矢印 → Auto Compile → オン
  5. 以下のファイルをファイル名latexmkrcで作成する
$latex = 'platex';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex -U %O -o %D %S';
$pdf_mode = 3;

設定した結果

  • 日本語ファイルを正しくコンパイルして表示できた
  • カーソル位置がずれなくなった
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacBook Air 2012 HighSierra からCatalinaにバージョンアップを行う

目的

  • MacBook Air 2012のOSバージョンアップを実施した時の方法をまとめる

すいません

  • バックアップを必要とするデータが存在しないため今回は省略する。

条件確認

  • 下記のWebサイトを確認して自分のMacがOSのバージョンアップ対象なのか確認する。
  • 下記に簡単にバージョンアップ条件を記載する。
    1. OS X Mavericks 以降を搭載していること
    2. 記憶領域の空き容量が18.5 GB以上存在すること
    3. 下記に記載されたモデルより新しいこと
      1. 2015年 MacBook
      2. 2012年 MacBook Air
      3. 2012年 MacBook Pro
      4. 2012年 Mac mini
      5. 2012年 iMac
      6. iMac Pro
      7. 2013年 Mac Pro
    4. ACアダプターで給電できる環境にあること
    5. 安定したネットワークの回線があること
    6. Apple IDでApp Storeにログイン済みであること

実施手順

  1. ネットワークへの接続とACアダプターでの給電を確認する。
  2. Catalinaの取得
    1. 下記のリンクを開く
    2. 「App Storeを開く」をクリックする。 スクリーンショット 2020-02-25 9.09.26.png
    3. 「ダウンロード」をクリックする。 スクリーンショット 2020-02-25 9.10.56.png
    4. ダウンロードが開始されるので待つ。 スクリーンショット 2020-02-25 9.11.43.png
    5. ダウンロード完了後、自動でインストーラが起動する。 スクリーンショット 2020-02-25 9.16.53.png
    6. インストーラの「続ける」をクリックする。
    7. 利用規約に目を通し、「同意する」をクリックする。 スクリーンショット 2020-02-25 9.18.10.png
    8. インストール先の指定は特に特殊な設定をしていなければ、いじらずに「インストール」をクリックする。 スクリーンショット 2020-02-25 9.19.16.png
    9. ログイン情報の入力を迫られた時は必要情報を入力する。
    10. インストールが開始されるので終了するまで待つ。 スクリーンショット 2020-02-25 9.21.11.png
  3. インストールが完了すると端末が自動で再起動する。
  4. 下記の画面がでたら「続ける」をクリックする。 LWScreenShot 2020-02-25 at 10.32.19.png
  5. 下記の画面がでたら「続ける」をクリックする。 LWScreenShot 2020-02-25 at 10.32.32.png
  6. 下記の画面がでたらお好みのものにチェックを入れて「続ける」をクリックする。
    LWScreenShot 2020-02-25 at 10.32.41.png

  7. 下記の画面がでたらお好みの物を選択して「続ける」をクリックする。
    LWScreenShot 2020-02-25 at 10.32.52.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【ゴリ押し?】Catalinaのミュージック.appでもiTunes Serverを使えるようにする

macOS CatalinaでもiTunes Serverを利用する方法

あの…Appleさん…困ります…
ただ私は自分の持つ音源を楽しみたいだけなんです…

背景

mojaveまでは問題なくNASのiTunes Server機能で音源をホームシェアリングで再生できていたのに,Catalinaになって置き換わったミュージック.appだと再生ができません.これでは不便です.
無理やりiTunes.appをインストールすることで引き続き利用できていましたがこれでは根本的な解決ではありません.もやもやしていたので,ホームシェアリングはどういった仕組みなのかから調べてみることにしました.

ホームシェアリング機能にはDAAPを利用している

DAAP(Digital Audio Access Protocol)というプロトコルで通信をしていることがわかりました.これはAppleによって開発されたものらしいです.Wikipediaを見てみるとよくわかります.https://ja.wikipedia.org/wiki/Digital_Audio_Access_Protocol
このDAAPによる共有をiTunesなどでは「ホームシェアリング」としていますよね.また,私が利用しているSynology ds-215jではiTunes-serverと呼んでおります.

forkd-daapd

このdaap,実はかつてリバースエンジニアリングされたことによって,今も第三者的に開発が行われているらしく,このforked-daapdはこの記事を執筆時点(2020-02-25)でversion 27.1まで開発されていました.
なんと,version 27.0時点で今回のミュージック.appのDAAPの不具合が解決されているようです.じゃあどういった問題が起きていたのかといいますと,次の節で紹介いたします.

クライアントからの要求の仕様変更

はい.題名の通り,やはりミュージック.appが悪かったです.仕様が変わっていました.

"@"になっている

ミュージック.appの要求の内容の仕様変更の一つに問題ありました.本来,'com.apple.itunes.extended-media-kind[:]1'のように要求が来るはずが'com.apple.itunes.extended-media-kind[@]1'と要求が来てしまっているため,音源データをクライアントに送信できずにエラーを吐いていました.forked-daapdに,この"@"で来てしまうことに対して対策を施していない場合,次のようになりました.

pi@raspberrypi:~ $ sudo service forked-daapd status
● forked-daapd.service - DAAP/DACP (iTunes), RSP and MPD server, supports AirPlay and Remote
   Loaded: loaded (/etc/systemd/system/forked-daapd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-02-24 14:55:47 GMT; 30min ago
     Docs: man:forked-daapd(8)
 Main PID: 3970 (forked-daapd)
   Memory: 46.3M (max: 256.0M swap max: 32.0M)
   CGroup: /system.slice/forked-daapd.service
           └─3970 /usr/sbin/forked-daapd -f

Feb 24 15:22:13 raspberrypi forked-daapd[3970]: [  LOG]     daap: Unknown operator '@' in clause 'com.apple.itunes.extended-media-kind@
Feb 24 15:22:13 raspberrypi forked-daapd[3970]: [  LOG]     daap: Unknown operator '@' in clause 'com.apple.itunes.extended-media-kind@
Feb 24 15:22:13 raspberrypi forked-daapd[3970]: [  LOG]     daap: Unknown operator '@' in clause 'com.apple.itunes.extended-media-kind@
Feb 24 15:22:13 raspberrypi forked-daapd[3970]: [  LOG]       db: Could not prepare statement: no such column: f.album_sort
Feb 24 15:22:13 raspberrypi forked-daapd[3970]: [  LOG]     daap: Could not start query
Feb 24 15:22:23 raspberrypi forked-daapd[3970]: [  LOG]     daap: Unknown operator '@' in clause 'com.apple.itunes.extended-media-kind@
Feb 24 15:22:23 raspberrypi forked-daapd[3970]: [  LOG]     daap: Unknown operator '@' in clause 'com.apple.itunes.extended-media-kind@
Feb 24 15:22:23 raspberrypi forked-daapd[3970]: [  LOG]     daap: Unknown operator '@' in clause 'com.apple.itunes.extended-media-kind@
Feb 24 15:22:23 raspberrypi forked-daapd[3970]: [  LOG]       db: Could not prepare statement: no such column: f.album_sort
Feb 24 15:22:23 raspberrypi forked-daapd[3970]: [  LOG]     daap: Could not start query

わかりやすいように図を入れておきました.正確には違うかもしれませんがだいたいこういう状態です.
image.png

forked-daapdはどのようにして解決したか?

詳しくはGitHubのこちらのissueを御覧ください.
https://github.com/ejurgensen/forked-daapd/issues/785

一応かんたんに説明すると,forked-daapd v27.0以降では":"だけでなく"@"も返せるようにして対応したようです.ソースコードを見ていただいても良いのですが,saxonww氏のpatchがそのままソースコードにも反映されていますので紹介します.
https://gist.github.com/saxonww/3a2163bb0fbffcb12d4bb249cf79b8ac

導入してみる

すでにエラーログなどを載せている時点でおわかりの方もいらっしゃるように,今回はRaspberry Piを利用してDAAPサーバを立てました.用意したものは次のとおりです.
・Raspberry Pi2 model B+ with Raspbian buster lite
・NAS(DS-215j)
・Mac mini 2018 (i7 customized)(ラズパイにsshするのに利用した.)(CPU関係ない)(イキらせて)

構成したい環境

かんたんな図で申し訳ないですが,ラズパイでNASの音源がある場所をcifsでマウントします.そのマウントした場所をDAAPでクライアント(Mac)に音源を送るわけです.
image.png

NASをマウント

こちらの記事を参考にさせていただきました.感謝いたします.ですのでここでは簡単に紹介します.
https://qiita.com/nitbit/items/1ab1057b719be7ad0930

$sudo apt update && sudo apt upgrade -y
$sudo mkdir /mnt/nas
$sudo chmod 777 /mnt/nas
$sudo apt install vim -y
$sudo cp /etc/fstab /etc/fstab.bak
$sudo vim /etc/fstab
/etc/fstab
//NAS.local/music /mnt/nas/ cifs username=user,password=pass,file_mode=0444,iocharset=utf8,defaults 0 0 0

マウント確認

私はDNSでサーバアドレスを指定していますが,ちゃんと動作したので,DHCPとかでIPアドレスが変わっても大丈夫です(多分).
IPアドレスで指定したい場合はそれでも良いと思います.

$sudo mount -a
$df
Filesystem                   1K-blocks      Used  Available Use% Mounted on
/dev/root                     14947920   2556756   11752044  18% /
devtmpfs                        217076         0     217076   0% /dev
tmpfs                           221408         0     221408   0% /dev/shm
tmpfs                           221408      3120     218288   2% /run
tmpfs                             5120         4       5116   1% /run/lock
tmpfs                           221408         0     221408   0% /sys/fs/cgroup
/dev/mmcblk0p1                  258095     54366     203729  22% /boot
//NAS.local/music 1918102616 542255520 1375847096  29% /mnt/nas
tmpfs                            44280         0      44280   0% /run/user/1000

一応再起動

$ reboot

forked-daapdの導入

必須パッケージのインストール

めっちゃあります.

$ sudo apt update && sudo apt upgrade -y
$ sudo apt install -y build-essential git autotools-dev autoconf automake libtool gettext gawk gperf antlr3 libantlr3c-dev libconfuse-dev libunistring-dev libsqlite3-dev libavcodec-dev libavformat-dev libavfilter-dev libswscale-dev libavutil-dev libasound2-dev libmxml-dev libgcrypt20-dev libavahi-client-dev zlib1g-dev libevent-dev libplist-dev libsodium-dev libjson-c-dev libwebsockets-dev

forked-daapdを拾ってきて入れる

Githubから拾ってきて展開,コンパイルなどしてインストールします.丁寧なことにサービス化ファイルも同梱されていたのでありがたくコピーしましょう.

$ git clone https://github.com/ejurgensen/forked-daapd
$ cd forked-daapd
$ autoreconf -i
$ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
$ make
$ sudo make install
$ sudo cp forked-daapd.service /etc/systemd/system/

設定ファイル編集

音源データの保存先を編集します.マウント済みの/mnt/nasにしました.環境に合わせて変更して下さい.
ちなみに先の節でちゃっかりvim入れてます.vimで私は編集しました.(入れちゃった貴方!vim使ってみませんか?)

/etc/forked-daapd.conf
    # Directories to index
    directories = { "/mnt/nas" }

サービス起動,確認

$ sudo systemctl enable forked-daapd
$ sudo systemctl start forked-daapd
$ sudo systemctl status forked-daapd

一応再起動

$ reboot 

動作確認

うまく動作すると,”マイライブラリ\/”をクリックするとラズパイのDAAPサーバが見えますね.
image.png
しかし,このときおそらくまだ曲のリストを更新できていないのでしばらく待ってみましょう.一応,現在の更新状況は次のようにして見ることができます.
私の場合はラズパイ2ということもありますが,2000曲くらいあったので20分くらいかかりました.

$ sudo systemctl status forked-daapd.service
● forked-daapd.service - DAAP/DACP (iTunes), RSP and MPD server, supports AirPlay and Remote
   Loaded: loaded (/etc/systemd/system/forked-daapd.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2020-02-24 15:55:23 GMT; 3min 1s ago
     Docs: man:forked-daapd(8)
 Main PID: 905 (forked-daapd)
   Memory: 254.8M (max: 256.0M swap max: 32.0M)
   CGroup: /system.slice/forked-daapd.service
           └─905 /usr/sbin/forked-daapd -f

Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]     main: - Websockets
Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]     main: - ALSA
Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]     main: - Webinterface
Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]     main: mDNS init
Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]     mdns: Avahi state change: Client running
Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]       db: Configured to use database file '/usr/local/var/cache/forked-daapd/songs3.db'
Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]       db: Now vacuuming database, this may take some time...
Feb 24 15:55:26 raspberrypi forked-daapd[905]: [  LOG]       db: Database OK with 0 active files and 6 active playlists
Feb 24 15:56:14 raspberrypi forked-daapd[905]: [  LOG]     scan: Scanned 200 files...
Feb 24 15:56:56 raspberrypi forked-daapd[905]: [  LOG]     scan: Scanned 400 files...

更新が終わると,次のようになります.

Feb 24 16:06:52 raspberrypi forked-daapd[905]: [  LOG]     scan: Bulk library scan completed in 686 sec
Feb 24 16:06:54 raspberrypi forked-daapd[905]: [  LOG]      lib: Library init scan completed in 688 sec (2305 changes)
Feb 24 16:07:04 raspberrypi forked-daapd[905]: [  LOG]    cache: Beginning DAAP cache update
Feb 24 16:07:04 raspberrypi forked-daapd[905]: [  LOG]    cache: DAAP cache updated
Feb 24 16:08:45 raspberrypi forked-daapd[905]: [  LOG]    cache: Beginning DAAP cache update
Feb 24 16:08:51 raspberrypi forked-daapd[905]: [  LOG]    cache: DAAP cache updated

この状態でミュージック.appを開いてみましょう!
image.png

動作しました〜〜〜〜〜〜〜〜〜〜〜〜〜!!!!!!!
アルバムアートも出てる!(生成に時間がかかりました)(待ってれば勝手にやってくれるので大丈夫です)

結論

ラズパイ2B+は100BASE-TXなのでハイレゾ音源(96kHz/24bit)だとキツイかな…と思ってたんですが,ちゃんと安定して止まらずに再生できて正直びっくりしました.

追記(2020-02-25) :ラズパイにWi-Fiドングルくっつけて2.4GHz帯(11n)接続にしてみても安定してハイレゾ音源(96kHz/24bit)とかも再生してくれました.つまり,家の(電源がある)任意の場所にこいつを置けばNASの音源をDAAPで共有してくれます.
これはエモ〜い!www

あとさぁ…Appleさんさぁ…もうちょっとユーザフレンドリーにしてくださいよ…
え?ラズパイ噛ませた時点で根本的解決じゃないって?転がってたんだから仕方ないじゃん(遠い目)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む