abe のすべての投稿

Windows Installer Cleaner と Windows 7

コントロールパネルの「プログラムの追加と削除」でうまくアンインストールできない場合にぐぐると出てくるのが Windows Installer Cleaner ( utility )。
MS Office 2007 にバンドルされたツールだったらしいですが、Office 2007 のサポートが終了しているので MS からはダウンロードできなくなっています。
過去の情報
technet の情報によると、使い方を間違えると OS に重大なダメージを与えるから、だそうで。

今 ( 2017/09/28 時点 ) 使用するなら無理にダウンロードサイトを探すのではなく、プログラムのインストールまたは削除をブロックしている問題を解決するで公開されているツールを使用する方が良いと思います。

今回は Windows 7 ( 64bit ) にインストールされた office ime 2010 ( 32bit ) の削除の際に使用し無事解決しました。

Windows 10 でユーザープロファイルを修復する

Windows 7 あたりまでは、ユーザープロファイルの破損が原因のトラブルは

  1. ユーザープロファイルを格納したフォルダを rename
  2. 大体 C:\Users 以下にあるログオン名と同じフォルダの名前を変える

  3. 問題が生じたユーザープロファイルのアカウントでログオン

という感じでデフォルトプロファイル ( 大抵は C:\Users\Default という名前の隠しフォルダ ) からユーザープロファイルを再作成することで解決できました。
ところが、Windows 10 では同様の作業を行うと「一時プロファイルを使用しています」という表示がサインイン ( ログオン ) 後に表示され、自動でプロファイルの再作成ができません。
ということで、Windows 10 でのユーザープロファイルの修復はレジストリをいじって修正することになります。
詳細は↓
How to Fix A Corrupt User Profile In Windows 10
作業の要点は以下の通り。

  1. レジストリエディタで以下のレジストリキーをいじる
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
    • の中に S-1-x-xx ( x は数字 ) というフォルダがあるので、その中の ProfileImagePath キーを見て問題のあるユーザープロファイルを特定する。

    • 対象のユーザープロファイルの State を 0 に修正する
    • 対象のユーザープロファイルの RefCount を 0 に修正する
    • RefCount キーが存在しない場合は DWORD ( 32bit ) のキーを作成する

上記サイトに画像入りで説明がありますので、それを参照すると幸せになれます。

今回遭遇した問題は「スタートボタンのタイルアイコンをクリックしてもアプリが起動しない」「Windows Explorer で複数のファイルを一括して開こうとしてもアプリが起動しない」でしたが、上記解決法にて無事解決しました。

上記サイトでは管理者アカウントが存在しない場合に built in Administrator アカウントを有効にする方法もあります。但し、built in Administrator ( というか、プロファイル名に Administrator とあるアカウント ) では Microsoft Edge が起動できない、という問題がありますので、可能であれば非常用の管理者アカウントは作っておくと良いと思います。あと chrome や firefox を予め入れましょう。

KB3185278 がインストールできない場合

Windows 7 更新プログラムで KB3186278 がインストールできない症状に出会いました。
対処法としては C:\Users 以下にあるプロファイルを移動して数個程度にする、でした。
この不具合は修正プログラムをインストールするタイミングによるらしく、300 個ほどプロファイルがあっても問題が出なかった PC もあれば、200 個程度で発生する場合もあるようです。
特に数カ月に一度 Windows Update を適用するスタイルの場合はご注意を。

iOS 7.x を 10.2.x に更新する

以前 iOS を大幅にアップグレードする場合は Mac 版の iTunes を使用すると書きました。
iPad 2 の iOS を 5.1 から 9.2.1 にアップグレード
現在 ( 2017/02/06 ) では Windows 版の iTunes でも iOS の大幅な更新ができます。
いつからできるようになったかは忘れましたが、2016/12 にはできていたような気がします。

apt更新後にredmineが起動しない場合の対処

apt-get update && apt-get upgrade をした後で redmine が起動しないという現象が 11 月初頭に出ました。
原因は Ruby on Rails の仕様が変更されたので、secret_token の設定が Rails アプリで必須になったからです。
一応↓にひっそりと書いてあります。
http://www.redmine.org/projects/redmine/wiki/RedmineUpgrade
本家は↓
http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

・要約
1. {REDMINE_ROOT}/config/initializers/secret_token.rb を作成

$ cd /path/to/redmine
$ bundle exec rake generate_secret_token

で作成できる。ファイルのオーナーに注意。
マニュアル的には {REDMINE_ROOT}/config/initializers/secret_token.rb が既にある場合には一度削除してから
bundle exec rake generate_secret_token するように、とある。

作成された secret_token.rb の内容は

RedmineApp::Application.config.secret_key_base = ‘fugafuga’

という感じになる。
マニュアルでは「代わりに、このシークレットを config/secrets.ymlに保存することもできます」とあるので、secret_token.rb もしくは secrets.yml のどちらかがあればよさそうに読めますが、secret_token.rb と secrets.yml の両方が必要っぽい。但し

warning: key “inodot” is duplicated and overwritten

という警告が出る。

2. bundle exec rake secret を実行し、出力された文字列を {REDMINE_ROOT}/config/secrets.yml を手で作成して設定。
フォーマットは

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

という感じ。ENV[“SECRET_KEY_BASE”] の箇所は環境変数で渡します。例えば以下のような感じ。

$ export SECRET_KEY_BASE=”hogehoge”

とやってから Rails アプリを起動 ( Redmine を起動 ) となってます。
ただ、この場合自動起動しないので、apache の httpd.conf に

<directory "/path/to/redmine/public">
  SetEnv SECRET_KEY_BASE hogehoge
</directory>

と書いて sudo service apache2 restart とやると動作します。

・環境
Ubuntu 16.04.01
apache 2.4.18(apt経由でインストール)
redmine 3.3.1(ソースでインストール)
ruby 2.3.1p112
Bundler version 1.13.6

エラーではないけれど python

以下のような python スクリプトを書いてすこしはまりました。


#! /usr/bin/env python
# test.py
import sys
with open(sys.argv[0], "r") as f:
  for line in f:
    print line
  f.close()

これを、例えば下記のように実行するとソースファイルが二重に改行されて表示されます。

./test.py
# もしくは
python test.py

上のスクリプトは何をやっているかというと、ソースコード ( sys.argv[0] で指定されたスクリプト自身 ) を出力しているだけの話。コマンドライン引数は sys.argv[1] 以降に格納されています。
ある程度書いてからデバッグを行うと、エラーもなしにスクリプト自身が表示されて、頭を抱えることになります。
コマンドライン引数の取り扱いは注意しましょう、という話でした。

samba4.x は samba-tools domain provision コマンド実行が必須

samba4.x で Active Directory 環境に参加させようといろいろやってみた結論がタイトル。

環境

  • Ubuntu 14.04.4
  • samba : Version 4.3.9-Ubuntu

私の場合はマルチドメイン環境でしたが、以下のような感じでできました。

  • Active Directory Domain : oya.example.jp, ko.example.jp
  • samba を実行するサーバを参加させたい Domain : ko.example.jp
  • oya.example.jp の PDC : pdc01.oya.example.jp
  • ko.example.jp の PDC : pdc02.ko.example.jp

とします。

# samba のインストール
sudo apt-get update
sudo apt-get install samba
sudo apt-get install winbind

# winbind の設定
sudo vi /etc/nsswitch.conf
--- 修正箇所 ここから ---
group: compat winbind
passwd: compat winbind
-- ここまで ---

# kerberos5 環境の準備
sudo apt-get install krb5-user
sudo vi /etc/krb5.conf
--- /etc/krb5.conf の追記内容 ここから ---
[libdefaults]
default_realm = KO.EXAMPLE.JP
[reamls]
OYA.EXAMPLE.JP = {
kdc = pdc01.oya.example.jp
admin_server = pdc01.oya.example.jp
}
KO.EXAMPLE.JP {
kdc = pdc01.ko.example.jp
admin_server = pdc01.ko.example.jp
}
[domain_realm]
.oya.example.jp = OYA.EXAMPLE.JP
oya.example.jp = OYA.EXAMPLE.JP
.ko.example.jp = KO.EXAMPLE.JP
ko.example.jp = KO.EXAMPLE.JP
--- ここまで ---

sudo kinit administrator@OYA.EXAMPLE.JP
sudo klist
# で OYA.EXAMPLE.JP に参加できることを確認
sudo kinit administrator@KO.EXAMPLE.JP
sudo klist
# で KO.EXAMPLE.JP に参加できることを確認

# ドメインに参加
cd /etc/samba
sudo samba-tool domain provision
# いろいろ聞かれるがデフォルトのパラメータで問題ないはず。
# ここで聞かれるパスワードは実行している PC の administrator ( samba のユーザー ) のパスワードらしい。

あとは従来通りに /etc/samba/smb.conf を修正して共有フォルダを作成した後、

sudo service smbd start
sudo service nmbd start
sudo service winbind start

とやれば利用できるはず。

はまったこと

samba-tool は samba-tool domain provision 等で初期化されていないと失敗するコマンドがあるようです。一応動かない場合向けに samba の source code 内には install_with_python.sh というのがあり、python 2-6-5 環境で samba-tool を動作させるものがあるようですが、Ubuntu の apt で入れられる python 2.7.6 ( 2016/06/01 時点 ) でも問題なく動作しました。また、install_with_python.sh は色々試しましたが最終的にはインストールに失敗しました。

過去のログを漁ると、samba-tool domain provision を実行しないとこんな風なログが出たりします。

  • MYSERVER : samba を実行しているサーバの名前
  • DOMAIN : Active Directory のショートドメイン名
  • DOMAIN FLL NAME : Active Directory の FQDN


--- log.wb-<DOMAIN> より ---
Kinit for <MYSERVER>$<DOMAIN> to access cifs/<DOMAIN FILL NAME>@<DOMAIN> failed: Preauthentication failed
--- log.winbindd-dc-connect より ---
Kinit failed: Cannot contact any KDC for requested realm

samba3.x の smb.conf を作成してから sudo net ads join してもエラーは出ませんが、作成した共有フォルダにアクセスできなかったり、wbinfo -g や wbinfo -u は表示されても id -a “<DOMAIN>\<USER>” で id 名の解決に失敗したりします。

vocaloid V3 Miku 英語版にシンガーのバリエーションを追加してみる

日本語版 Vocaloid V3 MIKU にはシンガーとして Original, Dark, Soft, Solid, Sweet のバリエーションがありますが、V3 MIKU English にはそのようなバリエーションがありません。ですので自分でシンガーを追加してみました。気が向いたらシンガーを追加してみます。
もしかしたら V3 MIKU 英語版の製品にはバリエーションがあるのかもしれませんが、商品紹介ページを見た限りではバリエーションが無い感じです。

まず、Vocaloid には「シンガーエディター」というのがあり、V3 では「プレシネス」「ブライトネス」「クリアネス」「ジェンダーファクター」の 4 つのパラメータがあります。また 4 つのパラメーターの他に「オリジナルの歌手」というものがあります。
日本語版 vocaloid V3 MIKU のシンガーのオリジナルの歌手はそれぞれシンガーの名前と同じで、各パラメータは 0 に設定してあります。

V3 のヘルプには情報がないようですが、V2 のヘルプによるとパラメーターの意味は以下の通り。なお、各パラメータの取りうる値は 0~127 で、初期値は全てのパラメータが 0 です。

  • (参考)V3_English
  • ブレシネス
  • 名前が示す通り、声の「息っぽさ」を増減させるパラメーターです。この値が高いとより息が加えられた感じの声になります。

    最大にすると、かすれた+割れた音になります。ノイズが乗った感じの音です。

  • ブライトネス
  • 声の高い周波数成分を増減します。この値を高くすると明るくきらびやかな音になり、低くすると落ち着いた穏やかな音になります。優しくささやくようなフレーズには、この値を低く抑えると効果的です。

    最大にしても音色はあまり変化なし。velocity が大きくなったような感じ。

  • クリアネス
  • このパラメーターの効果は”ブライトネス”と似ていますが、声質の変わり方が少し異なります。この値を高くするとシャープで澄んだ音になり、低くするとこもった重たい音になります。

    最大にすると高音にノイズが乗った音になります。

  • ジェンダーファクター
  • 歌声のフォルマント構造を変えることで、歌手のキャラクターを広範囲に変えることができます。この値を高くするほど深く男性的な声になり、低くするほど女性的な声になります。設定によりアニメのキャラクターや動物の鳴き声のような甲高い声に変えることもできます。

    最大にすると米良義一のようなカウンターテナーな声になります。

なお V2 では「オープニング」というパラメータがありますが、V3 では削除されています。ちなみに意味は以下の通り。

  • オープニング
  • 口の開け具合により声のトーンが変わる様子をシミュレートすることができます。この値を高くするほどクリアなトーンとなり、低くするほどクリアではないトーンになります。

次に、日本語版 Voaloid V3 MIKU のシンガーを比較してみます。

アレンジ例

vocaloid 英語版の発音記号との対応表

Vocaloid Editor for Cubase 64bit を使用しています。MIKU_V3_English でミクさんに英語歌詞を歌ってもらおうかと思っていますが、マニュアルが分かりずらいので対応表を作ってみました。

おやくそく
この対応表は自己責任で使用してください。

前置き
基本的には「巡音ルカ」の発音記号表と英語ライブラリの使い方と同じです。但し、前記サイトでは英語の発音記号が分かりにくいのでweblioで使用している発音記号を使用してみました。
なお、英語の発音およびフォントはwikipedia の国際音声記号を参照しました。

vocaloid 発音記号 英語の発音記号 サンプル 発音例
V ˈʌ strut 「ア」。日本語の「ア」と同じ
e e them 「エ」
I ( 大文字のアイ ) í kit 「イ」。日本語の「イ」と同じ
i: íː beef 「イー」
{ ˈæ trap 「エ」に近い音で「ア」
O: ˈɔː taught 口を開いて「オー」
Q ά lot 「オ」に近い音で「ア」
U ˈʊ put 「オ」に近い音で「ウ」
u: úː boot 「オ」に近い音で「ウー」
@r ɚ maker 舌を丸めて、「エ」に近い音で「ア」
eI ( e と大文字のアイ ) pay 「エ」に近い音で「ア」「イ」
aI ( a と大文字のアイ ) άɪ buy 「オ」に近い音で「ア」「イ」
OI ( 大文字のオーと大文字のアイ ) ˈɔɪ boy 「オィ」
@U ˈəʊ oat 「オ」に近い音で「ア」、「オ」に近い音で「ゥ」
aU άʊ loud 「アゥ」
I@ ( 大文字のアイと@ ) íɚ beer 「イァ」
e@ éɚ bear 「エァ」
U@ ˈʊɚ poor 「ウァ」
O@ ˈɔɚ pour 「オァ」
Q@ άɚ star 「アァ」
w w way 「ウ」
j j yellow 「ィ」
b b cab ( 子音 )「(ン)ブ」
d d bad ( 子音 ) 「(ン)ド」
g g bag ( 子音 ) 「(ン)グ」
bh b
音節の始め ( 帯気音を持って )
big ( 子音 ) 「ビ」
dh d
音節の始め ( 帯気音を持って )
dog ( 子音 ) 「ドゥ」
gh g
音節の始め ( 帯気音を持って )
god )( 子音 ) 「ゴ」
dZ jeans ( 子音 ) 「ジ」
v v vote ( 子音 ) 「ヴ」
D ð their ( 子音 ) ( 舌を歯で挟んで ) 「ゼ」
z ( 小文字のゼット ) z resort ( 子音 ) 「ズ」
Z ( 大文字のゼット ) ʒ Asia ( 子音 )「ジ」
m m mind ( 子音 )「ム」
n n night ( 子音 )「ン」
N ŋ long ( 子音 )「ング」
r r red ( 子音 )「ル」
l ( 小文字のエル ) l feel ( 子音 ) ( 舌を上顎につけて )「ル」
l0 ( 小文字のエルと数字のゼロ ) l ( 音節の始め ) list ( 子音 ) 「ル」
p p dip ( 子音 ) 「プ」
t t sit ( 子音 ) 「ツ」
k k rock ( 子音 ) 「(ッ)ク」
ph p
音節の始め ( 帯気音を持って )
peace ( 子音 ) 「ピ」
th t top ( 子音 ) 「ト」
kh k
音節の始め ( 帯気音を持って )
kiss ( 子音 ) 「ク」
tS touch ( 子音 ) 「(ッ)チ」
f f feel ( 子音 ) 「フ」
T θ think ( 子音 ) ( 舌を歯で挟んで ) 「シ」
s ( 小文字のエス ) s sea ( 子音 ) 「シ」
S ( 大文字のエス ) ʃ share ( 子音 ) ( 口を横に開いて ) 「シ」
h h hat ( 子音 ) 「ハ」
@ ə
シュワー ( あいまいな母音 )
England 「ァ」

Tips

  • 「歌詞の流し込み」機能でもある程度は自動で発音記号を割り振ってもらえます。しかし全ての英単語を流し込みで入力できるわけではありません。また、日本語歌詞から英語歌詞に変更する場合などは、若干不自然な歌詞になる事も考えられます。
  • Cubase 8.5 Pro + Vocaloid Editor for Cubase の場合、vocaloid の発音記号を入力するには、音符の上で右クリックし、ポップアップメニューから「音符のプロパティ」をクリックします。PHONETIC の箇所に vocaloid の発音記号を入力します。
    例えば “stand” は vocaloid の発音記号では “s t V n d” と入力します。母音 ( V ) が 1 つだけなので、stand は音符 1 つ分の長さになります。
  • vocaloid の発音記号は 1 つずつ半角スペースで区切って入力します。発音記号の一覧は上記のテーブルを参照のこと。これ以外のアルファベットを入力した場合、発音されず無視されます。音符内で有効な母音がない場合は @ が発音されるか無視されます。
  • 音符 1 つに付き母音 1 つを入力します。二重母音も母音 1 つとしてカウントされます。三重母音 ( fire の “aiər” など ) はありません。当然ながら日本語の母音と英語の母音は異なりますので単語ごとに発音を確認すると幸せになれます。
  • 複数の音符にまたがって発音する場合、母音を重ねることになります。
    例えば “stand” を 2 音符で表現する場合は “[s t V] [V n d]”、3 音符で表現する場合は “[s t V] [V] [V n d]” となります。
  • Vocaloid Editor for Cubase の場合ではシンガーの変更はトラックごとになります。日本語歌詞の途中で英単語を歌わせたい場合は、日本語シンガーでカタカナ表記にするか、英語シンガーで日本語を発音記号で表現することになります。
    一応英語の IPA 発音記号変換というサイトで英語をカタカナ表記にしたり、イギリス英語 / アメリカ英語での発音を確認したりできるようです ( 2016/03/15 時点 )

iPad 2 の iOS を 5.1 から 9.2.1 にアップグレード

たまに iOS の更新を行おうとしても、十分な空き容量があっても「容量が足りません」と表示されることがあります。
結論としては「Mac の iTunes を使用するとアップグレードできる」なのですが、いろいろと試行錯誤したのでそのまとめを。

テスト環境

  • iPad 2 Wi-Fi モデル ( MC769J )
  • iOS 5.1 ( 9B176 )
  • たしか 5.1.1 だったように思います。

  • iTunes 12.3.2.25 ( Win 10 Pro 64bit / Mac Book Pro ( OS X El Capitan ) )

作業前にやること

バックアップを取りましょう。結論として、iOS 5.1.x から 9.2.1 に更新する際には Apple 社のサイトから disk image のひな形をダウンロードして適用することになります。iPad に保存していたデータは当然ながら消えてしまうので iCloud 上でもローカル PC 上でも良いので iTunes でバックアップを取りましょう。

また、iOS の更新ができるデバイスなのかを確認します。対応機種一覧表のようなものはないので、Apple 社のサイト内で、例えば「iOS 9.2.1 対応機種」などと検索して確認します。

空き容量の確認

現時点では、2GB 程度の空き容量があれば問題なさそうです。
確認方法は「設定」アプリを起動し「一般」->「情報」で使用可能な disk space が確認できます。

アップグレードできない場合の診断内容の確認

iOS のアップグレードに失敗した場合、iPad 上で失敗ログの確認ができます。iOS 5.1 の場合は「設定」アプリの「一般」->「情報」ページの下方に「診断/使用状況」というメニューがあります。iOS 9.2.1 では確認できず。iPad 等のデバイスのログを取得する方法としては xcode を使用する ( つまり Mac を用意する ) 方法もあります。
で、今回、診断情報として以下の内容が記載されていました。

boot partition (required/actual): 59729285/52428800
(略)
failed to prepare boot environment for update OS
API failed

つまり iPad の boot 領域が不足しているため iOS の更新ができない、という事を示しています。
この場合、Mac の iTunes を使用することで OS のアップグレードができます。Windows 版 iTunes ではアップグレードができません。

Windows 版 iTunes でできること・できないこと

リカバリーモードの iPad に iOS のひな形を配信することは Windows 版 iTunes でも可能です。但し、iPad の iOS とおなじバージョンであることと、Apple 社のサポート期間内の iOS であることが条件です。iOS 5.1 の場合、Windows 版 iTunes では「アップデートサーバとの接続ができませんでした」のようなエラーが表示されました。

Windows 版 iTunes では iPad の復元に失敗することがあります。これは、Windows の administrators 権限がないため「ではなく」、iPad をリカバリーモードで起動することができない場合に表示されます。たぶん、iPad 側の iOS のバージョンと、iTunes が拾ってくる iOS のバージョンが食い違うと起きるようです。一応 iPad 側であらかじめリカバリーモードで起動して Windows の iTunes に接続して、という方法もやってみたのですが、上記のような理由で失敗しました。ちなみに「iPad を復元」というボタンはリカバリーモードで起動した iPad を接続すると表示されません。

おわりに

情報システム部門で iPad を管理している場合「アプリが非対応だから iOS の更新を待って」というアナウンスはよくやるのですが、「アプリが非対応だから iOS の更新をして」というアナウンスは稀です。ですのでそのようなアナウンスをした場合、iPad 単体で iOS の更新ができなかった大量のブツが情報システム部門に殺到して詰む、という事は十分に考えられます。
Windows ですと段階的にアップグレードができるので、時間はかかっても更新はできます。ただ、そのような感覚で iPad を管理すると情報システム部門が大変になります。iPad を組織内で運用するのであれば「アプリの検証が済んだから iOS の更新をして」というアナウンスも流すようにすると幸せになれます。