Movable Typeで承認ワークフロー

January 11,2017 12:03 AM
Category:[MTDDC]
Tag:[MTDDC]
Permalink

遅くなりましたが「MTDDC Meetup Tokyo 2016」で発表した「Movable Typeで承認ワークフロー」のスライドを公開します。

スライドはワークフローおよびWorkflowプラグインについての解説で、次のような構成になっています。

  • ワークフローの概要
  • ワークフロープラグイン開発のきっかけ
  • 苦労した点
  • Workflowプラグインの概要
  • 必要な設定
  • その他の機能
  • 実演(スライドなしです、すいません)

また下記のリンクから当日の音声も聴くことができます。

Movable Typeで承認ワークフロー

Comments [0] | Trackbacks [0]

Finaleで3連符に付点をつける方法

January 7,2017 12:55 AM
Category:[Finale]
Tag:[Finale]
Permalink

Finaleで3連符に付点をつける方法を紹介します。

Finaleで3連符に付点をつける

1.問題点

Finaleで3連符に付点をつけたいと思い、3連符を入力するときに「付点」アイコンをクリックして入力してみましたが、入力できませんした。

ということで、Finaleで3連符に付点をつける方法を紹介します。

2.3連符に付点をつける

3連符に付点をつけるには、付点をつけるのは後回しにして、とりあえず4分音符で入力。

4分音符を入力

8分音符に切り替えて、8分音符も入力します(4分より先に入力してもOK)。

8分音符も入力

「高速ステップ入力ツール」のアイコンをクリック。

高速ステップ入力ツール

表示が切り替わった瞬間に音価の足りない部分が休符(ここでは16分休符)で埋まりますが、無視して作業を続行します。

休符

付点をつけたい音符に挿入バーを移動して「.」キーを押下(Finaleの付点アイコンではなくキーボードのキー)。

「.」キーを押下

「規定の拍数を超えています」というダイアログが表示されるので、「余分な拍を削除する」を選択して「OK」をクリック。

余分な拍を削除する

これで16分休符が削除されます。

16分休符が削除

「選択ツール」アイコンなどをクリックして表示を切り替えれば完成です。

表示を切り替えれば完成

Comments [0] | Trackbacks [0]

複数のWordファイルを結合する方法

December 29,2016 1:55 AM
Category:[Word]
Tag:[Office, Word]
Permalink

複数のWordファイルを結合する方法を紹介します。

1.はじめに

WordファイルにはExcelのような共有機能がないため、1つのファイルを複数人で同時に編集することができません。

そうすると予めファイルを分割しておき、各人がそれぞれのファイルを編集することが効率的なのですが、分割したファイルを結合(マージ)する方法が分かりません。

ということで、複数のWordファイルを結合する方法を紹介します。

2.複数のWordファイルを結合する

複数のWordファイルを結合するために、「アウトライン表示によるサブ文書の挿入」機能を利用します。

ここでは下記の3つの簡素な内容のWordファイルを例に結合してみます。

test1.docx
Wordファイル1

test2.docx
Wordファイル2

test3.docx
Wordファイル3

test1.docxにtest2.docx、test3.docxを結合します。test2.docx、test3.docxが「サブ文書」となります。

test1.docxの「表示」タブ→「アウトライン」をクリック。

(クリックで拡大、以下同様)
アウトライン

これでアウトライン表示になったので、「文書の表示」をクリック。

文書の表

これでメニューが表示されたので、カーソルをアウトライン表示の一番下に移動して「挿入」をクリックし、test2.docを選択。

挿入

test2.docの内容が挿入されました。同じ手順でtest3.docの内容も挿入します。

挿入

test3.docの内容が挿入されました。

挿入

「アウトライン表示を閉じる」をクリック。

アウトライン表示を閉じる

これで通常の表示に戻り、test1.docxにtest2.docx、test3.docxの文書が結合されたことがわかります。

1ページ目
Wordファイル1(1ページ目)

2ページ目
Wordファイル1(2ページ目)

3ページ目
Wordファイル1(3ページ目)

この状態でtest1.docxを保存して終了し、再度開くと、test2.docx、test3.docxの部分がリンクになっていることがわかります。

リンク

つまり、test2.docx、test3.docxを個別に編集すれば、編集内容が更新されることになります。

更新を反映させる方法は次項の手順を実施してください。

3.リンクを本文に置き換える(=更新を反映させる)

test1.docxのリンクを本文に置き換える(=更新を反映させる)には、「表示」タブ→「アウトライン」→「サブ文書の展開」をクリック。

サブ文書の展開

これでtest2.docx、test3.docxの内容がtest1.docxに反映されます。

test2.docx、test3.docxの内容がtest1.docxに反映

この状態では、test1.docxを開くたびにtest2.docx、test3.docxの部分がリンクとして表示されることになります。

test2.docx、test3.docxの部分をリンクではなく本文に置き換えてしまいたい場合は、次項の手順を実施してください。

4.リンクを解除する

test1.docxの中にあるtest2.docx、test3.docxのリンクを本文に完全に置き換えるには、前項の手順でtest2.docxの任意の位置にカーソルを置き、「リンク解除」をクリック。

リンク解除

同じ要領でtest3.docxの任意の位置にカーソルを置き、「リンク解除」をクリック。

リンク解除

これでtest2.docx、test3.docxのリンクが解除され、test1.docxに反映されます。

test2.docx、test3.docxのリンクが解除

ただしこの操作を行ったあと、test2.docx、test3.docxを変更しても、test1.docxに反映されなくなります。

5.注意事項

文書を結合した時、各ファイルの本文末尾に「セクション区切り」が挿入され、ページ番号が連番にならない事象を確認しています。

ページ番号を連番にするには、セクション区切りを削除する必要があります。

セクション区切りを削除するには「Wordでセクション区切りを削除する方法」を参照してください。

また、サブ文書のファイルサイズが大きい場合、サブ文書の展開に時間がかかる(数分とか)ことも確認しています。

Comments [0] | Trackbacks [0]

Wordのルーラーが揃わない場合の対処

December 28,2016 12:55 AM
Category:[Word]
Tag:[Office, Word]
Permalink

Wordのルーラーが揃わない場合の対処方法を紹介します。

1.問題点

Wordには段落の1行目と2行目以降の開始位置を指定するためのルーラーが用意されています。

ルーラー

▽が段落の1行目の開始位置、△が2行目以降の開始位置、その下の□で全体の開始位置を指定します。

が、行によっては▽と△が一致せず、開始位置が不揃いになる場合があります。

開始位置が不揃い

ということで、ルーラーが揃わない場合の対処方法を紹介します。

2.ルーラーが揃わない場合の対処方法

ルーラーはマウスでドラッグすると一定間隔でしか移動できないのですが、Altキーを押下しながらドラッグすることで微調整ができるようになります。

ルーラーの表示も切り替わります。

開始位置が揃う

コツは下記の手順で実施することです。

  1. Altキーを押しながらルーラーをドラッグ
  2. 位置が揃った時点でマウスのクリックを離す
  3. Altキーを離す

2と3の手順を逆にすると(=先にAltキーを離すと)ルーラーの位置がずれてしまうのでご注意ください。

Comments [0] | Trackbacks [0]

Wordでセクション区切りを削除する方法

December 27,2016 12:33 AM
Category:[Word]
Tag:[Office, Word]
Permalink

Wordでセクション区切りを削除する方法を紹介します。

1.問題点

Wordには「セクション区切り」という機能があり、この機能を利用することでセクション単位にレイアウトや書式の設定が可能になります。

簡単なサンプルで、現在のカーソルがある位置(「あああ」と「いいい」の間)にセクション区切りを挿入する方法を説明します。

「あああ」と「いいい」の間にカーソルを移動し、「ページレイアウト」タブ→「区切り」をクリックして、セクション区切りの「現在の位置から開始」をクリック。

これでセクション区切りが挿入されました。

ただ、ご覧のとおりセクション区切りが挿入されていることが分かりにくく、挿入したセクション区切りを削除する方法が分かりません。

ということで、セクション区切りを削除する方法を紹介します。

2.セクション区切りを削除する

セクション区切りを削除するには、まずセクション区切りを表示させます。

セクション区切りを表示するには、「ホーム」タブ→「段落」グループの右側にある「編集記号の表示/非表示」アイコンをクリック。

これでセクション区切りが可視化されます。

(クリックで拡大)

あとは表示されたセクション区切りを選択して削除すればOKです。

(クリックで拡大)

これでセクション区切りが削除されました。

(クリックで拡大)

3.ステータスバーにセクション区切りを標示する

前項では「編集記号の表示/非表示」でセクション区切りの編集記号を表示させましたが、ステータスバーにセクション番号を表示させることで文書内のセクション区切りの有無を調べることができます。

ステータスバーにセクション区切りを標示するには、ステータスバーを右クリックして「セクション」にチェックをつけます。

これでセクション番号が表示されます。

セクション区切りがある場合、カーソルを移動するかページをスクロールすれば、セクション番号の表示が変わります。

Comments [0] | Trackbacks [0]

MTのアイテムアップロード時に記事と関連付ける「EntryAssociaterWithUploadAssetプラグイン」

December 26,2016 12:55 AM
Category:[アイテム]
Tag:[EntryAssociaterWithUploadAsset, MovableType, Plugin]
Permalink

MTのアイテムアップロード時に記事と関連付ける「EntryAssociaterWithUploadAssetプラグイン」を公開します。

1.機能

タイトルのとおり、MTに本プラグインを適用することで、アイテムの新規アップロード時に記事と関連付けてくれます。

2.プラグインのダウンロード・インストール

下記のリンクをクリックして、EntryAssociaterWithUploadAssetのプラグインアーカイブをダウンロードします。

EntryAssociaterWithUploadAsset_0_01.zip

プラグインアーカイブを展開し、pluginsフォルダにあるEntryAssociaterWithUploadAssetフォルダをMovable Typeのアプリケーションディレクトリのpluginsディレクトリにアップロードします。

システム管理画面のプラグイン設定画面で「EntryAssociaterWithUploadAsset~」が表示されればインストール完了です。

プラグイン設定画面

3.使い方

アイテムのアップロード画面に「関連付ける記事」という項目が表示されます。

アイテムのアップロード画面

アップロードするアイテムを記事と関連付けたい場合にこのプルダウンから記事を選択してください。

アイテムのアップロード画面

4.注意事項

記事が大量に登録されている場合、アイテムアップロード画面表示に時間がかかるのでご注意ください。

Comments [0] | Trackbacks [0]

ApacheのCGIでソースが表示される場合の対処

December 15,2016 12:03 AM
Category:[Apache]
Tag:[Apache]
Permalink

ApacheのCGIでソースが表示される場合の対処を紹介します。

1.問題点

Linux(CentOS)にtar.gzからインストールしたApacheでCGIを動かそうとしたのですが、CGIのソースがそのままブラウザに表示されてしまいます。

httpd.confは下記のように設定済みです。

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

2.原因

原因は、CGI用のモジュールがロードされていなかったためです。

CGI用のモジュールがロードされているかどうかは下記のコマンドで確認できます。

[root@file bin]# ./apachectl -M|grep cgi
 cgid_module (shared)

「apachectl -M」は、ロードされたモジュールの一覧を表示するコマンドです。

何も表示されない場合、CGI用のモジュールがロードされていないので、次項の手順でロードします。

3.対処

CGI用のモジュールをロードするには、httpd.confの、

#LoadModule cgid_module modules/mod_cgid.so

LoadModule cgid_module modules/mod_cgid.so

に変更して、Apacheを再起動します。

# /usr/local/apache2/bin/apachectl restart

これでCGIが起動するようになりました。

4.その他

過去の情報では、

LoadModule cgi_module modules/mod_cgi.so

を設定するようになっていますが、Apacheの2.4系からworker(event) + mod_cgidのモデルが推奨されているようです。

ちなみに、インストールディレクトリでモジュールが配置されている/usr/local/apache2/modulesにもmod_cgid.soしかなく、mod_cgi.soはありませんでした。

5.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]

Linuxにtreeをインストールする方法

December 8,2016 12:33 AM
Category:[Linux]
Tag:[Linux]
Permalink

Linuxにtreeをインストールする方法を紹介します。

1.はじめに

treeはディレクトリ配下のファイルやディレクトリをツリー状に表示してくれるコマンドです。

が、先日インスト―ルしたCentOSにはtreeが入っていません。

ということで、Linuxにtreeをインストールする方法を紹介します。

2.treeをインストールする

yumが使える環境であれば、

# yum install tree

でインストールできます。

yumが使えない場合、インストールパッケージは下記にあります。

http://rpm.pbone.net/index.php3?stat=3&search=tree&srodzaj=3

にあります。

正常にダウンロードできない場合は、リンクの「ftp://」を「http://」に書き換えて実行してみてください。

ダウンロードしたパッケージを任意のディレクトリにアップロードして、rpmコマンドを実行すればインストールできます。

# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:tree-1.6.0-10.el7                ################################# [100%]

3.罫線が文字化けする場合の対処

インストール後、実行してみましたが、下記のように罫線が文字化けする事象に遭遇。

# tree
tqq hoge
x?? mqq test
x??     tqq aaa.h
x??     tqq aaa.cc

対処方法として、treeコマンドに「--charset=C」を付与します。

# tree --charset=C
|-- hoge
|   `-- test
|       |-- aaa.h
|       |-- aaa.cc
Comments [0] | Trackbacks [0]

MTテンプレートタグのブラケットを書き換える「MTTagBracketChangerプラグイン」

December 4,2016 12:55 AM
Category:[テンプレートタグ]
Tag:[MovableType, MTTagBracketChanger, Plugin]
Permalink

MTテンプレートタグのブラケットを書き換える「MTTagBracketChangerプラグイン」を公開します。

これは Movable Type Advent Calendar 2016 4日目の記事です。

1.はじめに

Movable Typeのテンプレートタグは、

<mt:Entries>
  <mt:EntryTitle>
</mt:Entries>

という風に、各タグの前後は"<"と">"、いわゆるブラケット(厳密にはアングルブラケット)で括るようになっています。

このブラケットを「別の文字に書き換えられないだろうか?」というくだらないことを、MTを始めた頃に考えたりしたのですが、当時はPerlもろくに読めずに挫折しました。

それから年月も経ってふとそのことを思い出し、今回作ってみました。

何の役にも立ちませんが、

[mt:Entries]
  [mt:EntryTitle]
[/mt:Entries]

などのフォーマットで動作するので、5分くらいは楽しめると思います。

下記のようなフォーマットもできそうですが面倒なのでやめました。

<?php mt:Entries?>
  <?php mt:EntryTitle?>
<?php /mt:Entries?>

2.プラグインのダウンロード・インストール

下記のリンクをクリックして、MTTagBracketChangerのプラグインアーカイブをダウンロードします。

MTTagBracketChanger_0_01.zip

プラグインアーカイブを展開し、pluginsフォルダにあるMTTagBracketChangerフォルダをMovable Typeのアプリケーションディレクトリのpluginsディレクトリにアップロードします。

システム管理画面のプラグイン設定画面で「MTTagBracketChanger~」が表示されればインストール完了です。

プラグイン設定画面

3.使い方

システム管理画面のプラグイン設定画面で「MTTagBracketChanger~」→「設定」をクリックし、「開始文字」と「終了文字」を設定します。デフォルト状態は何も設定されていません。

設定後、テンプレートタグのブラケットを書き換えてみてください。正規表現で使われる文字を設定する場合は必ずエスケープしてください。

プラグイン設定画面

4.注意事項

全ての動作を確認していないので不具合がありましたらご了承ください。

また、プラグインはテンプレートタグ処理のメイン部分に手をいれているため、設定した文字によっては管理画面(=テンプレートタグを使っている)が正常に表示されなくなる可能性があります。

管理画面が正常に表示されなくなった場合、プラグインを削除すれば元に戻ります。

Comments [0] | Trackbacks [0]

C/C++で「incompatible implicit declaration of built-in function」という警告の対処

November 29,2016 1:11 AM
Category:[C/C++]
Tag:[C/C++]
Permalink

C/C++で「incompatible implicit declaration of built-in function」という警告の対処について紹介します。

1.問題点

次のプログラム(sample.c)を書きました。

int main(void) {
    int c = 100;
    printf("%d\n", c);
    return 0;
}

このプログラムをコンパイルしたところ、次の警告が表示されました。

[foo@hoge ~]$ gcc -o sample.c                                                                    
sample.c: In function 'main':
sample.c:3: 警告: incompatible implicit declaration of built-in function 'printf'

警告は「ビルトイン関数strcpyの互換性のない暗黙の宣言」という意味になります。

ネットで調べたとところ、「事前に宣言されていない関数を使用すると、(コンパイラで)関数の暗黙の宣言が行われる。ただし暗黙の宣言が組み込みの関数と互換性がない場合、警告が表示される」ということらしいです。

2.原因

原因は、printf()を使っていてstdio.hをインクルードしていないためです。

その他、strcpy()を使っていてstring.hをインクルードしていない場合など、同様の警告が発生します。

3.対処

下記の1行を追加すれば解消します。

#include <stdio.h>

4.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]

nkfで上書きする方法

November 28,2016 1:11 AM
Category:[Linux]
Tag:[Linux]
Permalink

Linuxのnkfコマンドで上書きする方法を紹介します。

1.問題点

nkfはファイルの文字コードを変換するコマンドです。

たとえば、UTF-8環境のLinuxで文字コードがEUCのファイルを参照するには次のようにします。

$ nkf -w foo.txt

-wはUTF-8(BOMなし)に変換するオプションです。

が、この方法ではファイルを参照するたびに毎回nkfを実行する必要があります。

できれば同じファイル名で文字コードを変更してしまいたいのですが、方法が分かりません。

2.nkfコマンドで上書きする

nkfコマンドで上書きするには、

$ nkf -w --overwrite foo.txt

という風に「--overwrite」を付与します。

--overwriteは既存のファイルを上書きするオプションです。

Comments [0] | Trackbacks [0]

Apache 2.4 系をソースからインストール

November 22,2016 12:55 AM
Category:[Apache]
Tag:[Apache]
Permalink

LinuxにApache 2.4 系をソースからインストールする手順を紹介します。

1.アーカイブのダウンロードと展開

Apacheのダウンロードのページにアクセスして、「httpd-2.4.23.tar.gz」をクリック。

httpd-2.4.23.tar.gz

ダウンロードしたアーカイブを任意のディレクトリで展開します。

<pre><code>[root@file tmp]# tar zxvf httpd-2.4.23.tar.gz
httpd-2.4.23/
httpd-2.4.23/.deps
httpd-2.4.23/.gdbinit
httpd-2.4.23/ABOUT_APACHE
 :
httpd-2.4.23/build/aix/README</code></pre>

2.configure実行(1回目)

configureを実行しますが、「APR not found」というエラーが発生します。

[root@file tmp]# cd httpd-2.4.23/
[root@file httpd-2.4.23]# ./configure
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
configure:
configure: Configuring Apache Portable Runtime library...
configure:
checking for APR... no
configure: error: APR not found.  Please read the documentation.

3.APR と APR-Utilの準備

Apache Portable Runtimeのダウンロードのページにアクセスして、

  • apr-1.5.2.tar.gz
  • apr-util-1.5.4.tar.gz

をダウンロード。

Apache Portable Runtime

サーバにアップロードして展開します。

[root@file tmp]# tar -zxvf apr-1.5.2.tar.gz
apr-1.5.2/
apr-1.5.2/config.layout
apr-1.5.2/build.conf
 :
apr-1.5.2/libapr.rc
[root@file tmp]# tar -zxvf apr-util-1.5.4.tar.gz
apr-util-1.5.4/
apr-util-1.5.4/libaprutil.dep
apr-util-1.5.4/xlate/
 :
apr-util-1.5.4/encoding/apr_base64.c

展開したディレクトリをApacheのsrclibディレクトリにコピー。

[root@file tmp]# cp -Rp ./apr-1.5.2  ./httpd-2.4.23/srclib/apr
[root@file tmp]# cp -Rp ./apr-util-1.5.4 ./httpd-2.4.23/srclib/apr-util

4.configure実行(2回目)

再度configureを実行しますが、今度は「pcre-config for libpcre not found.」というえらーに遭遇します。

[root@file httpd-2.4.23]# ./configure
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
 :
checking for pcre-config... false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

5.PCREをインストール

PCREのページにアクセスして、「pcre-8.39.tar.gz」をダウンロード(ソースからビルドしてインストールするのであればC++コンパイラ(g++)が必要)。

pcre-8.39.tar.gz

アーカイブを展開して下記を実行。

[root@file tmp]# tar xvzf pcre-8.39.tar.gz
[root@file tmp]# cd pcre-8.39
[root@file pcre-8.39]# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
   :
    Link pcretest with libreadline .. : no
    Valgrind support ................ : no
    Code coverage ................... : no
[root@file pcre-8.39]# make
rm -f pcre_chartables.c
ln -s ./pcre_chartables.c.dist pcre_chartables.c
make  all-am
make[1]: ディレクトリ `/tmp/pcre-8.39' に入ります
  CC       libpcre_la-pcre_byte_order.lo
  CC       libpcre_la-pcre_compile.lo
 :
  CXX      pcre_stringpiece_unittest-pcre_stringpiece_unittest.o
  CXXLD    pcre_stringpiece_unittest
make[1]: ディレクトリ `/tmp/pcre-8.39' から出ます
[root@file pcre-8.39]# make install
make  install-am
make[1]: ディレクトリ `/tmp/pcre-8.39' に入ります
make[2]: ディレクトリ `/tmp/pcre-8.39' に入ります
 :
make[3]: ディレクトリ `/tmp/pcre-8.39' から出ます
make[2]: ディレクトリ `/tmp/pcre-8.39' から出ます
make[1]: ディレクトリ `/tmp/pcre-8.39' から出ます

6.configure実行(3回目)

これでconfigure実行が正常に終了します。

[root@file httpd-2.4.23]# ./configure
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking for grep that handles long lines and -e... /usr/bin/grep
 :
config.status: creating build/config_vars.sh
config.status: creating include/ap_config_auto.h
config.status: executing default commands

7.make

makeを実行します。

[root@file httpd-2.4.23]# make
Making all in srclib
make[1]: ディレクトリ `/tmp/httpd-2.4.23/srclib' に入ります
Making all in apr
make[2]: ディレクトリ `/tmp/httpd-2.4.23/srclib/apr' に入ります
make[3]: ディレクトリ `/tmp/httpd-2.4.23/srclib/apr' に入ります
 :
make[2]: ディレクトリ `/tmp/httpd-2.4.23/modules' から出ます
make[2]: ディレクトリ `/tmp/httpd-2.4.23/support' に入ります
make[2]: ディレクトリ `/tmp/httpd-2.4.23/support' から出ます

make[1]: ディレクトリ `/tmp/httpd-2.4.23' から出ます

8.make install

make installを実行します。

[root@file httpd-2.4.23]# make install
Making install in srclib
make[1]: ディレクトリ `/tmp/httpd-2.4.23/srclib' に入ります
Making install in apr
make[2]: ディレクトリ `/tmp/httpd-2.4.23/srclib/apr' に入ります
make[3]: ディレクトリ `/tmp/httpd-2.4.23/srclib/apr' に入ります
 :
mkdir /usr/local/apache2/man/man1
mkdir /usr/local/apache2/man/man8
mkdir /usr/local/apache2/manual
make[1]: ディレクトリ `/tmp/httpd-2.4.23' から出ます

これでApacheのインストールが完了しました。

Comments [0] | Trackbacks [0]

Finaleで小節を前後の組段へ移動する方法

November 21,2016 12:33 AM
Category:[Finale]
Tag:[Finale]
Permalink

Finaleで小節を前後の組段へ移動する方法を紹介します。

1.問題点

Finaleである小節を後の組段、または前の組段に移動したいのですが方法が分かりません。

たとえば、下の画像のように赤枠の13小節目を次の段の最初に移動させたい場合などです。

(クリックで拡大、以下同様)
13小節目を次の段の最初に移動

2.小節を後の組段へ移動する

小節を後の組段へ移動するには、「選択」ツールをクリック。

「選択」ツール

移動させたい小節をクリック。

移動させたい小節をクリック

「ユーティリティ」→「選択小節を後の組段へ移動」をクリック。

選択小節を後の組段へ移動

これで選択した小節が後の組段へ移動します。

選択した小節が後の組段へ移動

3.複数の小節を後の組段へ移動する

複数の小節を次の組段へ移動したい場合(例えば段の最後の3小節を下へ移動したい場合)は、それらのうち最初の小節をクリック。

複数の小節を次の組段へ移動

これで最後の3小節が後の組段へ移動します。

複数の小節を次の組段へ移動

4.小節を前の組段へ移動する

小節を前の組段へ移動するには、2項と同様の手順で移動させたい小節をクリック。

移動させたい小節をクリック

「ユーティリティ」→「選択小節を前の組段へ移動」をクリック。

選択小節を前の組段へ移動

これで選択した小節が前の組段へ移動します。

選択した小節が前の組段へ移動

5.複数の小節を前の組段へ移動する

複数の小節を前の組段へ移動したい場合(例えば段の最初の3小節を上へ移動したい場合)は、それらのうち最後の小節をクリック。

複数の小節を前の組段へ移動

これで最初の3小節が前の組段へ移動します。

複数の小節を前の組段へ移動

Comments [0] | Trackbacks [0]

Firefoxでタブをまとめてくれるアドオン「OneTab」

November 10,2016 12:03 AM
Category:[アドオン]
Tag:[Addon, Firefox]
Permalink

Firefoxでタブをまとめてくれるアドオン「OneTab」の紹介です。

アドオン

1.はじめに

Google Chromeにはタブをまとめてくれる拡張「OneTab」があります。

これを使えば無駄にタブを開くことなく、タブの内容を保存しておくことができます。

OneTabに開いていたタブの内容を保存することで無駄なプロセスを減らせるので、使用メモリ量を減らすことができます。

今回は「OneTab」のFirefox版の紹介です。

2.インストール

メニューの「アドオン」をクリック。

アドオン

検索ボックスに「onetab」を入力して実行。

検索ボックス

表示された「OneTab」の「インストール」をクリック。

表示されたウィンドウの「同意してインストール」をクリック。

同意してインストール

ブラウザにOneTabのアイコンが表示されればインストール完了です(アイコンはクリックしないでください)。

OneTabのアイコン

3.使い方

さきほどのOneTabのアイコンをクリックすれば、そのウィンドウで開いているタブを「OneTab」のタブに送ってくれます(タブがすべてなくなります)。

OneTabに送りたいタブを選びたい場合は、各タブ上で右クリックして、表示されたコンテキストメニューの「OneTab」→「このタブのみ、OneTabに送る」を選択します。他の操作もこのメニューから行えます。

(クリックで拡大)

これでそのタブに表示されていた内容が「OneTab」のページに移動し、元のタブが消えます。

OneTabに送ったタブを復活させたい場合は、表示されたリンクをクリックすればOKです。

送ったタブの内容はその場で削除したり、複数並んでいる場合はドラッグ&ドロップで入れ替えることができます。

Comments [0] | Trackbacks [0]

mmapでMAP_FIXEDを利用する方法

November 4,2016 2:22 AM
Category:[Linux]
Tag:[Linux]
Permalink

mmapでMAP_FIXEDを利用する方法を紹介します。

1.はじめに

mmapはファイルの内容をメモリにマップするC/C++の関数です。

mmapの引数は、

void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);

となっています。各引数の意味は次のとおりです。

  • addr:新しいマッピングの開始アドレス
  • length:マッピングの長さ
  • prot:マッピングのメモリ保護
  • flags:マッピングに対する更新の見え方
  • offset:マッピング開始位置

manによるとmmapは次のような動作になります。

addr が NULL の場合、カーネルがマッピングを作成するアドレスを選択する。この方法は最も移植性のある新 しいマッピングの作成方法である。 addr が NULL でない場合、カーネルはマッピングをどこに配置するかのヒントとして addr を使用する。Linux では、マッピングはすぐ近くのページ境界に作成される。新しいマッピングのアドレスは、呼び出しの返り値として返される。(中略)ファイルマッピングの内容は、ファイルディスクリプタ fd で参照されるファイルのオフセット offset から開始される length バイトのデータで初期化される。

また、MAP_FIXEDはflagsに指定する値で、次のように定義されています。

addr をアドレスのヒントとして使用するのではなく、 addr で指定されたアドレスをそのまま使用してマッピングを配置する。 addr はページサイズの倍数でなければならない。 addr と len で指定されたメモリ領域が既存のマッピングのページと重なる場合、既存のマッピングの重なった部分は捨てられる。もし指定されたアドレスが使用できない場合、 mmap() は失敗する。マッピングに対して固定アドレスを要求するのは移植性の面で劣るので、このオプションは使用しないことを推奨する。

つまり、引数addrで指定されたアドレスからマッピングできるようですが、非推奨のためかネットに情報がありません。

ということで、mmapでMAP_FIXEDを利用する方法を紹介します。

2.mmapでMAP_FIXEDを指定する

mmapでMAP_FIXEDを指定するには次のように実装すればいいようです。

#include <fstream>
#include <fcntl.h>
#include <sys/mman.h>
 
int main(int argc,char **argv) {
 
    // ファイルオープン
    int fd;
    fd = open(argv[1], O_RDONLY);
 
    // ファイルのマップ
    void* addr1 = mmap(0, 100, PROT_READ, MAP_SHARED, fd, 0);
    printf("mmap addr1:%p\n", addr1);
    if(addr1 == MAP_FAILED)
        perror("mmap NG");
    int result = munmap(addr1, 100);
    printf("munmap result:%d\n", result);
 
    // ファイルのマップ(MAP_FIXED)
    void* addr2 = mmap(addr1, 100, PROT_READ, MAP_SHARED | MAP_FIXED, fd, 0);
    printf("mmap addr2:%p\n", addr2);
    if(addr2 == MAP_FAILED)
        perror("mmap NG");
    result = munmap(addr2, 100);
    printf("munmap result:%d\n", result);
 
    return 1;
}

実行結果は次のとおりで、MAP_FIXEDを指定したmmapでは第1パラメータで指定したアドレスを取得できています。

[foo@hoge test]% ./a.out ./test.txt                                                                                   
mmap addr1:0x7f3ff4cbb000
munmap result:0
mmap addr2:0x7f3ff4cbb000
munmap result:0

ポイントは、MAP_SHAREDまたはMAP_PRIVATEを必ず指定することです。

  • MAP_SHARED:ファイルをマッピングしている他のプロセスから見える。
  • MAP_PRIVATE:プライベートな copy-on-write (書き込み時コピー) マップを生成する。

このいずれかとMAP_FIXEDをorで設定することで正常に動作します。

MAP_FIXED以外にもいくつかのフラグが用意されていますが、今回紹介した3つのフラグのみ、POSIX.1-2001(IEEE Std 1003.1-2001)で規定されています。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages