20190323のMacに関する記事は5件です。

文字コードをコマンドで切り替える(iTerm2 )

環境、ファイルごとに文字コードがeuc, utf-8と混在しており、頻繁に日本語が文字化けしていました。
毎回iTerm2の設定画面で切り替えていましたが、面倒なのでコマンドで切り替えれるようにします。

プロファイルを文字コードの数だけ作る

iTermを開いている状態でcmd + ,でPreferencesを開き、
+ボタンから必要な数だけプロファイルを作成します。
名前は文字コード名がよいでしょう。
スクリーンショット 2019-03-23 21.16.04.png

Terminal設定で実際の文字コードを設定する
スクリーンショット 2019-03-23 21.22.34.png

コマンドでプロファイルを切り替える

$ echo '\033]1337;SetProfile=プロファイル名\a'で任意のプロファイルに切り替えることができます。

utf-8に切り替えてみる

$ echo '\033]1337;SetProfile=utf-8\a'
$ cat test.txt
aaa
あああ

eucに切り替えてみる

$ echo '\033]1337;SetProfile=euc\a'
$ cat test.txt
aaa
秧???????

参考:https://www.iterm2.com/documentation-escape-codes.html

シェルに切り替えコマンドを登録する

毎回コマンドを打つのは面倒なのでbash_profileや.zshrcに登録しておきます。

zshrcを更新後、source .zshrcコマンドやログインし直して設定値を読み込み直します。

alias utf="echo -e '\033]1337;SetProfile=utf-8\aencording:utf-8'"
alias euc="echo -e '\033]1337;SetProfile=euc\aencourding:euc'"

簡単に文字コードを切り替えることができるようになりました。

$ utf
encoding:utf-8
$ cat test.txt
aaa
あああ
$ euc
encoding:euc
$ cat test.txt
aaa
秧???????
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac × VagrantでWindows7 × IE11の環境をつくる!

はじめに

MacでWebサイトの開発を行っていると、「IEやEdgeでうまく表示できません」などの報告が上がってくるかと思います。

IE・Edgeの環境で確認や修正を行うための手段として、Windowsマシンを買うなり、MacにBootcampを入れるなりが考えられますが、
表示の確認や修正だけの場合であればそこまでコストをかけたくないというのがほとんどだと思います。

そんな中、Microsoftが実はInternet ExplorerやMicrosoft Edgeの仮想マシンを用意してくれているため、それを使用してローカルに仮想環境を準備することができます。(※1)

そこで今回は、自分のMacにVagrant(Virtual Box)で仮想環境を用意して、実際にIE11を動かすところまで行いたいと思います。

※1 2019年3月時点では、以下の環境の仮想マシンを使用できます。

  • InternetExplorer 8 (Windows7)
  • InternetExplorer 9 (Windows7)
  • InternetExplorer 10 (Windows7)
  • InternetExplorer 11 (Windows7)
  • InternetExplorer 11 (Windows8.1)
  • MicrosoftEdge (Windows10)

環境

  • macOS Mojave(10.14.3)
  • VirtualBox
  • Vagrant

VirtualBox

以下からmacOS版をダウンロード。
https://www.virtualbox.org/wiki/Downloads

pkgファイルを開いて、指示に従いインストール。

Vagrant

以下からmacOS版をダウンロード。
https://www.vagrantup.com/downloads.html

pkgファイルを開いて、指示に従いインストール。

Vagrant用の仮想マシンを取得

  1. 以下にアクセス
    https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
    download_the_virtual_machines.png

  2. Virtual machineのプルダウンからWindows7 IE11用の仮想マシンである、「IE11 on Win7 (x86)」を選択
    virtual_machines.png

  3. Select platformのプルダウンから「Vagrant」を選択
    platforms.png

  4. 「DOWNLOAD .ZIP >」ボタンをクリックして、仮想マシンをダウンロード
    download.png

  5. ダウンロードしたzipファイルを解凍
    私の環境(macOS Mojave)ではfinder上からは解凍できず、コマンドラインからunzipコマンドを使うと解凍できました。

terminal
$ unzip IE11.Win7.Vagrant.zip

コマンドラインからも解凍できない場合は、「The Unarchiver」などのツールをインストールして解凍を行ってください。

完了すると、 IE11 - Win7.boxというファイルを確認できるかと思います。


※ フォームの下部に以下のような注意書きがありますが、気にすべきは90日で有効期限が切れるということでしょうか。
note.png

ダウンロードした仮想マシンをVagrantで起動

1. ダウンロードしたboxを追加
 --name オプションでboxの名称を指定する必要があります。今回は「win7_ie11」とします。

terminal
$ vagrant box add IE11\ -\ Win7.box --name win7_ie11

2. 適当なディレクトリを用意し、vagrant initコマンドで初期化とVagrantfileの作成を行う

terminal
$ mkdir ie11
$ cd ie11
$ vagrant init

3. Vagrantfileを編集

Vagrantfile
Vagrant.configure("2") do |config|
  # vagrant box addで追加したbox名を指定
  config.vm.box = "win7_ie11"

  # GUIの使用とメモリの設定
  config.vm.provider "virtualbox" do |vb|
    vb.gui = true
    vb.memory = "2048"
  end

  # ゲストOSを指定
  config.vm.guest = "windows"

  # SSHの設定
  config.ssh.username = "IEUser"
  config.ssh.password = "Passw0rd!"
  config.ssh.insert_key = false
  config.ssh.shell = 'sh -l'
end

SSHのユーザーとパスワードは、仮想マシンをダウンロードしたサイトにある、View installation instructionsのリンク先を参照。

4. 仮想マシンを起動

terminal
$ vagrant up

起動が無事成功すると、Windows7のデスクトップ画面が表示されます!
win7_desktop.png

IEも問題なく開けます!
win7_ie11.png

※ vagrant upを実行後、terminalでタイムアウトのエラーが表示されている場合は、Vagrantfileにタイムアウトの設定を追加すると表示されなくなります。
時間は任意に指定してください。

Vagrantfile
config.vm.boot_timeout = 600

まとめ

Microsoftが用意してくれている仮想マシンを使うことで、簡単にWindows×IEの環境を用意することができました!

動作はもっさりしてしまうかもしれませんが、
最終的な成果物をWindows環境でも確認する場合など、限定的な用途においては十分な環境なのではないかと思います。

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

[Mysql][Error][Mac] テーブル一覧をShowできるが、Selectできない場合

理由はわからないが、(電源切れによる突然の再起動か)
特定のDatabase ファイルが壊れたようだ。

mysql> SHOW TABLES;
+-----------------------+
| Tables_in_database    |
+-----------------------+
| TABLE_ONE             |
| TABLE_TWO             |
| TABLE_THREE           |
+-----------------------+
mysql> SELECT * FROM TABLE_ONE;
ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist

mysqlcheck --all-databases --auto-repair
で原因を探ってみると

mysqlcheck -u root -p --all-databases --auto-repair 


mysql.user                                         OK
中略..
TABLE_ONE.table
Error    : Table 'teble_one.table' doesn't exist
status   : Operation failed

どうやら特定のデータベースのみ、壊れているようだ。

そこで、
今回はテスト環境で、データもたいしてなかったので
drop database して再度 Create しなおした。

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

VeraCryptのビルド on Mac

本記事は筆者個人の環境でのVeraCryptビルド事例を備忘録として記録しただけのものです。
公式ビルド/インストール手順が必要な場合は、必ず公式サイトの手順を参照してください。
また、本記事は自分でビルドしたバイナリを試走することだけが目的ですので、インストールはしません。

環境

Xcode をインストールしておきます。筆者環境では9.4.1でした。

Software Version
OS macOS High Sierra 10.13.6
Xcode 9.4.1
VeraCrypt 1.23
wxWidgets 3.0.4

ビルド事例

公式サイトから
VeraCrypt_1.23_Source.tar.bz2
を入手し、適当なディレクトリ(ここではVeraCrypt_1.23)に展開しておきます。

mkdir VeraCrypt_1.23
mv VeraCrypt_1.23_Source.tar.bz2 VeraCrypt_1.23
cd VeraCrypt_1.23
tar jxvf VeraCrypt_1.23_Source.tar.bz2
cd ..

(この後、パーミッションの問題でなぜかエラーが出たので、 chmod -R u+w srcなどで各ディレクトリに書き込み権限を与える操作を行いました。筆者の環境固有の問題でしょうか?)

wxWidgets 3.0.4 のソースも同様に展開し、上記VeraCrypt_1.23に並べて配置しておきます。
ディレクトリレイアウトは下記のようになります。

$ ls wxWidgets-3.0.4 VeraCrypt_1.23
VeraCrypt_1.23:
doc  License.txt  README.md  src  Tests  Translations

wxWidgets-3.0.4:
acinclude.m4     build         demos        interface      regen        utils
aclocal.m4       BuildGit.txt  descrip.mms  lib            samples      version-script.in
appveyor.yml     config.guess  distrib      locale         setup.h.in   wx-config.in
art              config.sub    docs         Makefile.in    setup.h_vms  wx-config-inplace.in
autoconf_inc.m4  configure     include      misc           src          wxwin.m4
autogen.sh       configure.in  install-sh   mkinstalldirs  tests

ビルドを実行する前にVeraCrypt_1.23/src/Build/build_veracrypt_macosx.shの内容を確認し、必要に応じて修正します。デフォルトでは
VC_OSX_TARGET=10.7
となっています。筆者環境では
VC_OSX_TARGET=10.13
への修正が必要でした。

# define the SDK version to use. We use 10.7 by default
export VC_OSX_TARGET=10.13
echo "Using MacOSX SDK $VC_OSX_TARGET"

ビルドを実行します。

cd VeraCrypt_1.23
cd src/Build
./build_veracrypt_macosx.sh

packageターゲットには失敗しますが、コンパイル&リンクができていれば実行はできます。
成功すると、 VeraCrypt_1.23/src/Main/VeraCrypt ができます。

References


以上。

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

Microsoft Remote DesktopでJISキーボードを有効にする方法

MacからMicrosoft純正のアプリである「Microsoft Remote Desktop」でリモートのWindowsに接続するとキーボードのマッピングが正しく行われないことがあります。

原因は以下に詳しく書かれています。
Mac からのRDP 接続で日本語キーボードを設定する

アプリがアップデートされない限り無理かと思いましたが、リモート側の設定でクライアントの設定(誤ったキーボード情報)を無視するように出来ました。

色々な記事を参考にして解決できましたので、参照したサイトと作業手順を纏めてみました。

対処方法

レジストリエディタで修正を行います。(2箇所あります。)

※言語に「日本語」がインストールされていない場合は、先にインストールを済ませてください。
(Azureなどのクラウド上でOSを構築した場合は大抵初期状態はUSのみなので)
参考:Windows10を日本語化する

1つ目

キー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\KeyboardType Mapping\JPN
名前 : 00010002

の値を「kdb106.dll」に変更します。

参考:MacからWindowsへリモートデスクトップ接続した際の使いづらいキーボードを改善する方法

2つ目

キー : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\KeyboardType Mapping\JPN
名前 : 00000000

の値を「kdb106.dll」に変更します。

参考:Windows 10ではIgnoreRemoteKeyboardLayoutが効かない?

"kbd106.dll" "kbd106n.dll"

以下の違いがあるようです。

DLL名 違い
kbd106.dll 「Shift」+「Ctrl」+「カタカナ ひらがな」でカナロック
kbd106n.dll 「Ctrl」+「Caps Lock」でカナロック

参考:http://www.geocities.jp/hts256/keyboard/

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