2019/12/26

CD/DVDをコマンドラインで取り出す

% diskutil eject /Volumes/XXXXX

あとは,ダウンロードしたImageファイルが無駄にマウントされたままだった場合は,
% diskutil unmount /Volumes/XXXXX
で出来る.


2019/12/25

GitHubのfork/cloneを本家に同期させる

昨今,ツールが便利になり過ぎて,それならこっちの方法の方が良いよぉ〜とか,お決まりの方法がなくて,ぽりすーで決まったりするところがあるから逆に初心者には面倒な世の中になったなと思いながら, GitHub をいじり始めたのでメモ.

ともかく,むかぁ〜し,fork した JAGURS が自分のところにありました.
https://github.com/naotaka-chikasada/jagurs

が,この作業を開始した時点で,2017年の古いまま.まずは,これを最新にしなきゃいけない.ということで,「GitHubでFork/cloneしたリポジトリを本家リポジトリに追従する」を参考に,少し足りないところを補足して整理しました.

自分のforkしたJAGURSを取得(ユーザ名は要修正)
% git clone https://username@github.com/username/jagurs.git

upstreamという名前(←たぶん,何でも良い)で,本家を名指し(remote add).
% cd jagurs
% git remote add upstream https://github.com/jagurs-admin/jagurs.git
(この作業は,今後やらなくてよいはず)

本家を追従
% git fetch upstream

マージ
% git checkout master
Already on 'master'
Your branch is up to date with 'origin/master'.
% git merge upstream/master
Already up to date.

最後にサーバにアップロード
% git push origin

参考にさせていただいたブログでは,最後のサーバにアップロードが無いので,ウェブで見えるレポジトリが更新されませんでした.

Bluetoothをコマンドラインで再起動する方法

しばしば TrakPad の Bluetooth 接続が切れて,こんな得体も知れない不具合の対策を考えるのも嫌だったので,逃げ道.

% sudo killall bluetoothd

こんだけかい?!
bluetoothd の再起動(正確には停止)には root 権限が必要だったようで,sudo してます.

これでやっと有線(USB)マウス外せる.

(仕組みは分かってませんが,どっかに supervisor みたいなのが居て, bluetoothd が落ちたら起動してくれる仕組みが走ってます.つまり,その supervisor が生きている前提の対処法であることは忘れてはいけないかもしれません.)

2019/12/14

MP-CD1 モバイルプロジェクター

最近の出張でウケてるのがモバイルプロジェクター.

ずいぶん小さくて明るくなったので,出張や外勤の時に持ち歩いてたら使えそうだなと思って買いました.ただ,種類は色々.目的によって絞り込みをかけていかないと失敗しそうです.私のポイントは,

  • 軽くて持ち歩く(かばんに入れっぱなし)気になること
  • 多少明るい室内でも使えること
  • 無線接続
  • ポスター会場で使えること

でした.色々悩んで買ったのはSONYのモバイルプロジェクターMP-CD1.ただし,このブログを書いている時点で生産中止で在庫限りでした.写真は,iPod touchの写真を投影(それ自体に意味はない).



決定的だったのは,ACアダプタ.バッテリー内臓で充電式のものもあったのだけど,充電(給電)にはACアダプタが必要なものが結構多かった.のに対して,MP-CD1は,UCB-C給電.MacBook な私にとっては,「必然的に持っているもの」だったので本体重量に加えて,充電ケーブルの重量(MP-CD1だと,私にとっては0g)で考えました.

その代わり,主に妥協したのが,HDMI有線接続しか出来ないという点.USBメモリに入れたpptxを再生できたり,無線でつながったりするのも魅力的だったのだけど,諦めました.写真のHDMIは付属ケーブルでかなり太くて硬いので,書い直す予定

ポスター会場でも使えるほど明るくて軽量なものはなかったので断念しました.ポスター会場用には,モバイルLCDを持った方が良さそうです.

おまけの機能として,USB-Aでモバイルバッテリにもなる点.スマホの充電に使えるのでこれは便利と思います.逆に,飛行機の時は機内持ち込みが必須になってしまいましたが.

2019/12/12

JAGURS compilation using Homebrew on MacOS

まだ MacPorts 使ってるの?とか言われてしまったので, Homebrew へ.主に何に使ってたかと言うと, JAGURS なので,まずは JAGURS がコンパイル出来るように整備してみた.

が,Makefile のバージョン管理に RCS 使ってたので,先ずは,
% brew intall rcs

それ以前としては, /usr/local に入っている HPC compiler を上書きさせないために, /opt/homebrew をインストール先にした.参考にした記事はこちら
cd /opt
sudo mkdir homebrew
sudo chown ${USER}:staff homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

依存ライブラリのインストール
 % brew install netcdf
 % brew install proj
 % brew install fftw
(伴って gcc のインストールも始まっていて重い・・・)

Makefile:
PROJ4_DIR=/opt/homebrew
FFTW3_INCLUDE_DIR=/opt/homebrew/include
NETCDF=/opt/homebrew

% make
In file included from mapproject.c:4:
/opt/homebrew/include/proj_api.h:37:2: error: #error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
 #error 'To use the proj_api.h you must define the macro ACCEPT_USE_OF_DEPRECATED_PROJ_API_H'
  ^~~~~

mapproject.c で,proj_api.h を include する前に, ACCEPT_USE_OF_DEPRECATED_PROJ_API_H を定義してあげると, make が通るようになります.

% cat mapproject.patch
*** mapproject.c        2019/12/11 20:49:39     1.1
--- mapproject.c        2019/12/11 20:51:04
***************
*** 1,6 ****
--- 1,7 ----
  #include <stdio.h>
  #include <string.h>
  #include <stdlib.h>
+ #define ACCEPT_USE_OF_DEPRECATED_PROJ_API_H
  #include <proj_api.h>

  static  projPJ pj_tmerc, pj_latlong;

もしくは,proj をバージョン5にするという解決策もあるようですが,,,悩みどころ.

参考までに,GitHub上のOSGeoのチケット